How to load .dds files
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 ..
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;
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
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
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.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement