Archived

This topic is now archived and is closed to further replies.

How to load .dds files

This topic is 5896 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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 ..

Share this post


Link to post
Share on other sites
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;

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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 !

Share this post


Link to post
Share on other sites