Jump to content

  • Log In with Google      Sign In   
  • Create Account


How to load .dds files


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
4 replies to this topic

#1 TheMummy   Members   -  Reputation: 122

Like
Likes
Like

Posted 21 October 2001 - 08:18 PM

Hi there, I want to use S3TC in OpenGL ... Since Nvidia provides a Photoshop plugin which saves DXT5 mipmaps, I thought about loading these dds files and convert them into my own proprietary texture format ... But I don''t have the direct draw headers and I don''t want download them, well but I need the typedef of DDSURFACEDESC2. Could someone post the typedef here ?? Are there any special pitfalls in loading dds files ? Thanks in advance ..

Sponsor:

#2 Scarab0   Members   -  Reputation: 122

Like
Likes
Like

Posted 21 October 2001 - 09:37 PM

Does this help? Ripped it right from ddraw.h for ya.

typedef struct _DDSURFACEDESC2
{
DWORD dwSize; // size of the DDSURFACEDESC structure
DWORD dwFlags; // determines what fields are valid
DWORD dwHeight; // height of surface to be created
DWORD dwWidth; // width of input surface
union
{
LONG lPitch; // distance to start of next line (return value only)
DWORD dwLinearSize; // Formless late-allocated optimized surface size
} DUMMYUNIONNAMEN(1);
union
{
DWORD dwBackBufferCount; // number of back buffers requested
DWORD dwDepth; // the depth if this is a volume texture
} DUMMYUNIONNAMEN(5);
union
{
DWORD dwMipMapCount; // number of mip-map levels requestde
// dwZBufferBitDepth removed, use ddpfPixelFormat one instead
DWORD dwRefreshRate; // refresh rate (used when display mode is described)
DWORD dwSrcVBHandle; // The source used in VB::Optimize
} DUMMYUNIONNAMEN(2);
DWORD dwAlphaBitDepth; // depth of alpha buffer requested
DWORD dwReserved; // reserved
LPVOID lpSurface; // pointer to the associated surface memory
union
{
DDCOLORKEY ddckCKDestOverlay; // color key for destination overlay use
DWORD dwEmptyFaceColor; // Physical color for empty cubemap faces
} DUMMYUNIONNAMEN(3);
DDCOLORKEY ddckCKDestBlt; // color key for destination blt use
DDCOLORKEY ddckCKSrcOverlay; // color key for source overlay use
DDCOLORKEY ddckCKSrcBlt; // color key for source blt use
union
{
DDPIXELFORMAT ddpfPixelFormat; // pixel format description of the surface
DWORD dwFVF; // vertex format description of vertex buffers
} DUMMYUNIONNAMEN(4);
DDSCAPS2 ddsCaps; // direct draw surface capabilities
DWORD dwTextureStage; // stage in multitexture cascade
} DDSURFACEDESC2;


typedef struct _DDSURFACEDESC2 FAR *LPDDSURFACEDESC2;


#3 TheMummy   Members   -  Reputation: 122

Like
Likes
Like

Posted 21 October 2001 - 10:39 PM

Thank you !

Looks great! I will test it when I get home from University ...

mmm looks bigger than I thought ...
What is a DWORD ? Is it the same as four chars ?? or one int ??
and how big is one LONG ? and DDCOLORKEY and DDSCAP ... mmm

I have another question will these mipmaps loaded form the dds files work with other chips than Nvidias Geforce2... e.g. on ATIs Radeon ?

Edited by - TheMummy on October 22, 2001 5:50:13 AM

#4 Scarab0   Members   -  Reputation: 122

Like
Likes
Like

Posted 22 October 2001 - 02:36 AM

quote:
What is a DWORD ? Is it the same as four chars ?? or one int ??
and how big is one LONG ? and DDCOLORKEY and DDSCAP ... mmm


A DWORD is an unsigned long which is 4 bytes big.
A LONG is a signed long which is also 4 bytes big.
The difference is that an unsigned long can have values 0 to 4,294,967,295 while a signed long can have values –2,147,483,648 to 2,147,483,647.
DDCOLORKEY and DDSCAPS are some more DirectDraw structures like DDSURFACEDESC2.

I have another question will these mipmaps loaded form the dds files work with other chips than Nvidias Geforce2... e.g. on ATIs Radeon ?

Well I can''t help you there. Sorry.

#5 TheMummy   Members   -  Reputation: 122

Like
Likes
Like

Posted 23 October 2001 - 02:30 AM

Ok ...
Now I just need the other structures ... *arg* ...

I think I should try to get the whole header ... can you send me the DirectX header with the type defs for all DDSURFACEDESC2 strucutres ...

Thank you, for your help !




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS