GL Studio C++ Runtime API
dds.h
Go to the documentation of this file.
1 /*! \file
2  \brief This header defines constants and structures that are needed to parse DDS files.
3 
4  \par Copyright Information
5 
6  Copyright (c) 2017 by The DiSTI Corporation.<br>
7  11301 Corporate Blvd; Suite 100<br>
8  Orlando, Florida 32817<br>
9  USA<br>
10  <br>
11  All rights reserved.<br>
12 
13  This Software contains proprietary trade secrets of DiSTI and may not be
14 reproduced, in whole or part, in any form, or by any means of electronic,
15 mechanical, or otherwise, without the written permission of DiSTI. Said
16 permission may be derived through the purchase of applicable DiSTI product
17 licenses which detail the distribution rights of this content and any
18 Derivative Works based on this or other copyrighted DiSTI Software.
19 
20  NO WARRANTY. THE SOFTWARE IS PROVIDED "AS-IS," WITHOUT WARRANTY OF ANY KIND,
21 AND ANY USE OF THIS SOFTWARE PRODUCT IS AT YOUR OWN RISK. TO THE MAXIMUM EXTENT
22 PERMITTED BY APPLICABLE LAW, DISTI AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES
23 AND CONDITIONS, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
24 IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY AND/OR FITNESS FOR A
25 PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT, WITH REGARD TO THE SOFTWARE.
26 
27  LIMITATION OF LIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW,
28 IN NO EVENT SHALL DISTI OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
29 INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION,
30 DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS
31 INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR
32 INABILITY TO USE THE SOFTWARE, EVEN IF DISTI HAS BEEN ADVISED OF THE POSSIBILITY
33 OF SUCH DAMAGES. DISTI'S ENTIRE LIABILITY AND YOUR EXCLUSIVE REMEDY SHALL NOT
34 EXCEED FIVE DOLLARS (US$5.00).
35 
36  The aforementioned terms and restrictions are governed by the laws of the
37 State of Florida and the United States of America. Use, distribution,
38 duplication, or disclosure by the U. S. Government is subject to
39 "Restricted Rights" as set forth in DFARS 252.227-7014(c)(1)(ii).
40 
41 */
42 #ifndef INCLUDED_DDS_H
43 #define INCLUDED_DDS_H
44 
45 // This file is copied and modified from Lumen: cpp\src\core\textureloader\dds\dds.h
46 
47 #ifdef WIN32
48 # include <windows.h>
49 #endif
50 
51 #include "DXGIFormat.h"
52 
53 ///////////////////////////////////////////////////////////////////////////////
54 // stuff from windef.h
55 ///////////////////////////////////////////////////////////////////////////////
56 #ifndef _WINDEF_
57 # include <stdint.h>
58 
59 typedef uint32_t DWORD; ///< Type used in orignal DirectX dds.h file
60 typedef unsigned char BYTE; ///< Type used in orignal DirectX dds.h file
61 typedef uint32_t UINT; ///< Type used in orignal DirectX dds.h file
62 
63 #endif // _WINDEF_
64 
65 ///////////////////////////////////////////////////////////////////////////////
66 // stuff from d3d9types.h
67 ///////////////////////////////////////////////////////////////////////////////
68 #ifndef _d3d9TYPES_H_
69 
70 /** Combines four charaters into a DWORD. Used for specified compressed texture formats.
71  * See http://msdn.microsoft.com/en-us/library/bb172558.aspx#DXTn_Compressed_Texture_Formats
72  */
73 # ifndef MAKEFOURCC
74 # define MAKEFOURCC( ch0, ch1, ch2, ch3 ) \
75  ( ( DWORD )( BYTE )( ch0 ) | ( ( DWORD )( BYTE )( ch1 ) << 8 ) | ( ( DWORD )( BYTE )( ch2 ) << 16 ) | ( ( DWORD )( BYTE )( ch3 ) << 24 ) )
76 # endif /* defined(MAKEFOURCC) */
77 
78 /** Defines the various types of surface formats. http://msdn.microsoft.com/en-us/library/bb172558.aspx
79  */
80 typedef enum _D3DFORMAT
81 {
82  D3DFMT_UNKNOWN = 0,
83 
84  D3DFMT_R8G8B8 = 20,
85  D3DFMT_A8R8G8B8 = 21,
86  D3DFMT_X8R8G8B8 = 22,
87  D3DFMT_R5G6B5 = 23,
88  D3DFMT_X1R5G5B5 = 24,
89  D3DFMT_A1R5G5B5 = 25,
90  D3DFMT_A4R4G4B4 = 26,
91  D3DFMT_R3G3B2 = 27,
92  D3DFMT_A8 = 28,
93  D3DFMT_A8R3G3B2 = 29,
94  D3DFMT_X4R4G4B4 = 30,
95  D3DFMT_A2B10G10R10 = 31,
96  D3DFMT_A8B8G8R8 = 32,
97  D3DFMT_X8B8G8R8 = 33,
98  D3DFMT_G16R16 = 34,
99  D3DFMT_A2R10G10B10 = 35,
100  D3DFMT_A16B16G16R16 = 36,
101 
102  D3DFMT_A8P8 = 40,
103  D3DFMT_P8 = 41,
104 
105  D3DFMT_L8 = 50,
106  D3DFMT_A8L8 = 51,
107  D3DFMT_A4L4 = 52,
108 
109  D3DFMT_V8U8 = 60,
110  D3DFMT_L6V5U5 = 61,
111  D3DFMT_X8L8V8U8 = 62,
112  D3DFMT_Q8W8V8U8 = 63,
113  D3DFMT_V16U16 = 64,
114  D3DFMT_A2W10V10U10 = 67,
115 
116  D3DFMT_UYVY = MAKEFOURCC( 'U', 'Y', 'V', 'Y' ),
117  D3DFMT_R8G8_B8G8 = MAKEFOURCC( 'R', 'G', 'B', 'G' ),
118  D3DFMT_YUY2 = MAKEFOURCC( 'Y', 'U', 'Y', '2' ),
119  D3DFMT_G8R8_G8B8 = MAKEFOURCC( 'G', 'R', 'G', 'B' ),
120  D3DFMT_DXT1 = MAKEFOURCC( 'D', 'X', 'T', '1' ),
121  D3DFMT_DXT2 = MAKEFOURCC( 'D', 'X', 'T', '2' ),
122  D3DFMT_DXT3 = MAKEFOURCC( 'D', 'X', 'T', '3' ),
123  D3DFMT_DXT4 = MAKEFOURCC( 'D', 'X', 'T', '4' ),
124  D3DFMT_DXT5 = MAKEFOURCC( 'D', 'X', 'T', '5' ),
125 
126  D3DFMT_D16_LOCKABLE = 70,
127  D3DFMT_D32 = 71,
128  D3DFMT_D15S1 = 73,
129  D3DFMT_D24S8 = 75,
130  D3DFMT_D24X8 = 77,
131  D3DFMT_D24X4S4 = 79,
132  D3DFMT_D16 = 80,
133 
134  D3DFMT_D32F_LOCKABLE = 82,
135  D3DFMT_D24FS8 = 83,
136 
137 /* D3D9Ex only -- */
138 # if !defined( D3D_DISABLE_9EX )
139 
140  /* Z-Stencil formats valid for CPU access */
141  D3DFMT_D32_LOCKABLE = 84,
142  D3DFMT_S8_LOCKABLE = 85,
143 
144 # endif // !D3D_DISABLE_9EX
145  /* -- D3D9Ex only */
146 
147  D3DFMT_L16 = 81,
148 
149  D3DFMT_VERTEXDATA = 100,
150  D3DFMT_INDEX16 = 101,
151  D3DFMT_INDEX32 = 102,
152 
153  D3DFMT_Q16W16V16U16 = 110,
154 
155  D3DFMT_MULTI2_ARGB8 = MAKEFOURCC( 'M', 'E', 'T', '1' ),
156 
157  // Floating point surface formats
158 
159  // s10e5 formats (16-bits per channel)
160  D3DFMT_R16F = 111,
161  D3DFMT_G16R16F = 112,
162  D3DFMT_A16B16G16R16F = 113,
163 
164  // IEEE s23e8 formats (32-bits per channel)
165  D3DFMT_R32F = 114,
166  D3DFMT_G32R32F = 115,
167  D3DFMT_A32B32G32R32F = 116,
168 
169  D3DFMT_CxV8U8 = 117,
170 
171 /* D3D9Ex only -- */
172 # if !defined( D3D_DISABLE_9EX )
173 
174  // Monochrome 1 bit per pixel format
175  D3DFMT_A1 = 118,
176 
177  // 2.8 biased fixed point
178  D3DFMT_A2B10G10R10_XR_BIAS = 119,
179 
180  // Binary format indicating that the data has no inherent type
181  D3DFMT_BINARYBUFFER = 199,
182 
183 # endif // !D3D_DISABLE_9EX
184  /* -- D3D9Ex only */
185 
186  D3DFMT_FORCE_DWORD = 0x7fffffff
187 } D3DFORMAT;
188 
189 #endif // _d3d9TYPES_H_
190 
191 ///////////////////////////////////////////////////////////////////////////////
192 // stuff from d3d10.h
193 ///////////////////////////////////////////////////////////////////////////////
194 #ifndef __d3d10_h__
195 
196 /** Maximum number of mipmap levels a texture resource may have.
197  * http://msdn.microsoft.com/en-us/library/bb509540.aspx
198  */
199 # define D3D10_REQ_MIP_LEVELS ( 14 )
200 
201 /** Maximum array size of a 2D texture array.
202  * http://msdn.microsoft.com/en-us/library/bb509540.aspx
203  */
204 # define D3D10_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION ( 512 )
205 
206 /** Identifies the type of resource being used. http://msdn.microsoft.com/en-us/library/bb172411.aspx
207  */
209 {
210  D3D10_RESOURCE_DIMENSION_UNKNOWN = 0,
211  D3D10_RESOURCE_DIMENSION_BUFFER = 1,
212  D3D10_RESOURCE_DIMENSION_TEXTURE1D = 2,
213  D3D10_RESOURCE_DIMENSION_TEXTURE2D = 3,
214  D3D10_RESOURCE_DIMENSION_TEXTURE3D = 4
216 
217 #endif // __d3d10_h__
218 
219 ///////////////////////////////////////////////////////////////////////////////
220 // stuff from the original dds.h
221 ///////////////////////////////////////////////////////////////////////////////
222 #ifndef _DDS_H_
223 
224 # pragma pack( push, 1 )
225 
226 /** A DWORD (magic number) containing the four character code value 'DDS '
227  * It is the first value in a DDS file
228  */
229 # define DDS_MAGIC 0x20534444 // "DDS "
230 
231 /** Surface pixel format. See http://msdn.microsoft.com/en-us/library/bb943984.aspx
232  */
234 {
235  DWORD dwSize; ///< Structure size; set to 32 (bytes).
236  DWORD dwFlags; ///< Values which indicate what type of data is in the surface.
237  DWORD dwFourCC; ///< Four-character codes for specifying compressed or custom formats.
238  DWORD dwRGBBitCount; ///< Number of bits in an RGB (possibly including alpha) format.
239  DWORD dwRBitMask; ///< Red (or lumiannce or Y) mask for reading color data.
240  DWORD dwGBitMask; ///< Green (or U) mask for reading color data.
241  DWORD dwBBitMask; ///< Blue (or V) mask for reading color data.
242  DWORD dwABitMask; ///< Alpha mask for reading alpha data.
243 };
244 
245 /// DDPF_FOURCC
246 /// Texture contains compressed RGB data; dwFourCC contains valid data.
247 # define DDS_FOURCC 0x00000004
248 
249 /// DDPF_RGB - Texture contains uncompressed RGB data;
250 /// dwRGBBitCount and the RGB masks (dwRBitMask, dwGBitMask, dwBBitMask) contain valid data.
251 # define DDS_RGB 0x00000040
252 
253 /// DDPF_RGB | DDPF_ALPHAPIXELS - Texture contains uncompressed RGBA data;
254 /// dwRGBBitCount and the RGB masks (dwRBitMask, dwGBitMask, dwBBitMask, dwABitMask) contain valid data.
255 # define DDS_RGBA 0x00000041
256 
257 /// DDPF_LUMINANCE - Used in some older DDS files for single channel color uncompressed data
258 /// (dwRGBBitCount contains the luminance channel bit count; dwRBitMask contains the channel mask).
259 /// Can be combined with DDPF_ALPHAPIXELS for a two channel DDS file.
260 # define DDS_LUMINANCE 0x00020000
261 
262 /// DDPF_ALPHA - Used in some older DDS files for alpha channel only uncompressed data
263 /// (dwRGBBitCount contains the alpha channel bitcount; dwABitMask contains valid data)
264 # define DDS_ALPHA 0x00000002
265 
266 const DDS_PIXELFORMAT DDSPF_DXT1 = { sizeof( DDS_PIXELFORMAT ), DDS_FOURCC, MAKEFOURCC( 'D', 'X', 'T', '1' ), 0, 0, 0, 0, 0 }; ///< DXT1 Pixel format
267 
268 const DDS_PIXELFORMAT DDSPF_DXT2 = { sizeof( DDS_PIXELFORMAT ), DDS_FOURCC, MAKEFOURCC( 'D', 'X', 'T', '2' ), 0, 0, 0, 0, 0 }; ///< DXT2 Pixel format
269 
270 const DDS_PIXELFORMAT DDSPF_DXT3 = { sizeof( DDS_PIXELFORMAT ), DDS_FOURCC, MAKEFOURCC( 'D', 'X', 'T', '3' ), 0, 0, 0, 0, 0 }; ///< DXT3 Pixel format
271 
272 const DDS_PIXELFORMAT DDSPF_DXT4 = { sizeof( DDS_PIXELFORMAT ), DDS_FOURCC, MAKEFOURCC( 'D', 'X', 'T', '4' ), 0, 0, 0, 0, 0 }; ///< DXT4 Pixel format
273 
274 const DDS_PIXELFORMAT DDSPF_DXT5 = { sizeof( DDS_PIXELFORMAT ), DDS_FOURCC, MAKEFOURCC( 'D', 'X', 'T', '5' ), 0, 0, 0, 0, 0 }; ///< DXT5 Pixel format
275 
276 const DDS_PIXELFORMAT DDSPF_A8R8G8B8 = { sizeof( DDS_PIXELFORMAT ), DDS_RGBA, 0, 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 }; ///< A8R8G8B8 Pixel format
277 
278 const DDS_PIXELFORMAT DDSPF_A1R5G5B5 = { sizeof( DDS_PIXELFORMAT ), DDS_RGBA, 0, 16, 0x00007c00, 0x000003e0, 0x0000001f, 0x00008000 }; ///< A1R5G5B5 Pixel format
279 
280 const DDS_PIXELFORMAT DDSPF_A4R4G4B4 = { sizeof( DDS_PIXELFORMAT ), DDS_RGBA, 0, 16, 0x00000f00, 0x000000f0, 0x0000000f, 0x0000f000 }; ///< A4R4G4B4 Pixel format
281 
282 const DDS_PIXELFORMAT DDSPF_R8G8B8 = { sizeof( DDS_PIXELFORMAT ), DDS_RGB, 0, 24, 0x00ff0000, 0x0000ff00, 0x000000ff, 0x00000000 }; ///< R8G8B8 Pixel format
283 
284 const DDS_PIXELFORMAT DDSPF_R5G6B5 = { sizeof( DDS_PIXELFORMAT ), DDS_RGB, 0, 16, 0x0000f800, 0x000007e0, 0x0000001f, 0x00000000 }; ///< R5G6B5 Pixel format
285 
286 // This indicates the DDS_HEADER_DXT10 extension is present (the format is in dxgiFormat)
287 const DDS_PIXELFORMAT DDSPF_DX10 = { sizeof( DDS_PIXELFORMAT ), DDS_FOURCC, MAKEFOURCC( 'D', 'X', '1', '0' ), 0, 0, 0, 0, 0 }; ///< DX10 Pixel format
288 
289 # define DDS_HEADER_FLAGS_TEXTURE 0x00001007 ///< DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH | DDSD_PIXELFORMAT
290 # define DDS_HEADER_FLAGS_MIPMAP 0x00020000 ///< DDSD_MIPMAPCOUNT
291 # define DDS_HEADER_FLAGS_VOLUME 0x00800000 ///< DDSD_DEPTH
292 # define DDS_HEADER_FLAGS_PITCH 0x00000008 ///< DDSD_PITCH
293 # define DDS_HEADER_FLAGS_LINEARSIZE 0x00080000 ///< DDSD_LINEARSIZE
294 
295 # define DDS_SURFACE_FLAGS_TEXTURE 0x00001000 ///< DDSCAPS_TEXTURE
296 # define DDS_SURFACE_FLAGS_MIPMAP 0x00400008 ///< DDSCAPS_COMPLEX | DDSCAPS_MIPMAP
297 # define DDS_SURFACE_FLAGS_CUBEMAP 0x00000008 ///< DDSCAPS_COMPLEX
298 
299 # define DDSCAPS2_CUBEMAP 0x00000200
300 # define DDS_CUBEMAP_POSITIVEX 0x00000600 ///< DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_POSITIVEX
301 # define DDS_CUBEMAP_NEGATIVEX 0x00000a00 ///< DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_NEGATIVEX
302 # define DDS_CUBEMAP_POSITIVEY 0x00001200 ///< DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_POSITIVEY
303 # define DDS_CUBEMAP_NEGATIVEY 0x00002200 ///< DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_NEGATIVEY
304 # define DDS_CUBEMAP_POSITIVEZ 0x00004200 ///< DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_POSITIVEZ
305 # define DDS_CUBEMAP_NEGATIVEZ 0x00008200 ///< DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_NEGATIVEZ
306 
307 /** DDS structure contains all faces
308  */
309 # define DDS_CUBEMAP_ALLFACES ( DDS_CUBEMAP_POSITIVEX | DDS_CUBEMAP_NEGATIVEX | DDS_CUBEMAP_POSITIVEY | DDS_CUBEMAP_NEGATIVEY | DDS_CUBEMAP_POSITIVEZ | DDS_CUBEMAP_NEGATIVEZ )
310 
311 # define DDS_FLAGS_VOLUME 0x00200000 ///< DDSCAPS2_VOLUME
312 
313 /** Describes a DDS file header. See http://msdn.microsoft.com/en-us/library/bb943982.aspx
314  */
315 typedef struct
316 {
317  DWORD dwSize; ///< Size of structure. This member must be set to 124.
318  DWORD dwHeaderFlags; ///< Flags to indicate which members contain valid data.
319  DWORD dwHeight; ///< Surface height (in pixels).
320  DWORD dwWidth; ///< Surface width (in pixels).
321  DWORD dwPitchOrLinearSize; ///< The pitch or number of bytes per scan line in an uncompressed texture;
322  DWORD dwDepth; ///< Depth of a volume texture (in pixels), only if DDS_HEADER_FLAGS_VOLUME is set in dwHeaderFlags
323  DWORD dwMipMapCount; ///< Number of mipmap levels, otherwise unused.
324  DWORD dwReserved1[ 11 ]; ///< Unused.
325  DDS_PIXELFORMAT ddspf; ///< The pixel format
326  DWORD dwSurfaceFlags; ///< Specifies the complexity of the surfaces stored.
327  DWORD dwCubemapFlags; ///< Additional detail about the surfaces stored.
328  DWORD dwReserved2[ 3 ]; ///< Unused.
329 } DDS_HEADER;
330 
331 /** DDS header extension to handle resource arrays. See http://msdn.microsoft.com/en-us/library/bb943983.aspx
332  */
333 typedef struct
334 {
335  DXGI_FORMAT dxgiFormat; ///< The surface pixel format
336  D3D10_RESOURCE_DIMENSION resourceDimension; ///< Identifies the type of resource.
337  UINT miscFlag; ///< Identifies other, less common options for resources.
338  UINT arraySize; ///< The number of elements in the array.
339  UINT reserved; ///< Reserved for future use.
341 
342 // THE BELOW FORMATS ARE USED IN LUMEN UNIT TEST AND WERE NOT PART OF THE ORIGINAL MICROSOFT DDS.H FILE
343 
344 # define DDS_LUMINANCEA 0x00020001 // DDPF_LUMINANCE | DDPF_ALPHAPIXELS
345 
346 const DDS_PIXELFORMAT DDSPF_A8 = { sizeof( DDS_PIXELFORMAT ), DDS_ALPHA, 0, 8, 0x00, 0x00, 0x00, 0xff };
347 
348 const DDS_PIXELFORMAT DDSPF_A8L8 = { sizeof( DDS_PIXELFORMAT ), DDS_LUMINANCEA, 0, 16, 0x00ff, 0x0000, 0x0000, 0xff00 };
349 
350 # pragma pack( pop )
351 
352 #endif // _DDS_H_
353 
354 #endif // INCLUDED_DDS_H
const DDS_PIXELFORMAT DDSPF_DX10
DX10 Pixel format.
Definition: dds.h:287
DWORD dwWidth
Surface width (in pixels).
Definition: dds.h:320
Definition: dds.h:233
const DDS_PIXELFORMAT DDSPF_R8G8B8
R8G8B8 Pixel format.
Definition: dds.h:282
const DDS_PIXELFORMAT DDSPF_DXT5
DXT5 Pixel format.
Definition: dds.h:274
uint32_t DWORD
Type used in orignal DirectX dds.h file.
Definition: dds.h:59
unsigned char BYTE
Type used in orignal DirectX dds.h file.
Definition: dds.h:60
DXGI_FORMAT dxgiFormat
The surface pixel format.
Definition: dds.h:335
const DDS_PIXELFORMAT DDSPF_DXT3
DXT3 Pixel format.
Definition: dds.h:270
DWORD dwFlags
Values which indicate what type of data is in the surface.
Definition: dds.h:236
DDS_PIXELFORMAT ddspf
The pixel format.
Definition: dds.h:325
DWORD dwRGBBitCount
Number of bits in an RGB (possibly including alpha) format.
Definition: dds.h:238
DWORD dwRBitMask
Red (or lumiannce or Y) mask for reading color data.
Definition: dds.h:239
const DDS_PIXELFORMAT DDSPF_A4R4G4B4
A4R4G4B4 Pixel format.
Definition: dds.h:280
UINT arraySize
The number of elements in the array.
Definition: dds.h:338
DWORD dwHeight
Surface height (in pixels).
Definition: dds.h:319
DWORD dwSize
Size of structure. This member must be set to 124.
Definition: dds.h:317
DWORD dwSurfaceFlags
Specifies the complexity of the surfaces stored.
Definition: dds.h:326
DWORD dwHeaderFlags
Flags to indicate which members contain valid data.
Definition: dds.h:318
#define DDS_ALPHA
Definition: dds.h:264
DWORD dwDepth
Depth of a volume texture (in pixels), only if DDS_HEADER_FLAGS_VOLUME is set in dwHeaderFlags.
Definition: dds.h:322
#define DDS_RGB
Definition: dds.h:251
UINT reserved
Reserved for future use.
Definition: dds.h:339
#define DDS_RGBA
Definition: dds.h:255
const DDS_PIXELFORMAT DDSPF_R5G6B5
R5G6B5 Pixel format.
Definition: dds.h:284
DWORD dwCubemapFlags
Additional detail about the surfaces stored.
Definition: dds.h:327
uint32_t UINT
Type used in orignal DirectX dds.h file.
Definition: dds.h:61
Definition: dds.h:315
#define DDS_FOURCC
Definition: dds.h:247
#define MAKEFOURCC(ch0, ch1, ch2, ch3)
Definition: dds.h:74
D3D10_RESOURCE_DIMENSION
Definition: dds.h:208
const DDS_PIXELFORMAT DDSPF_A1R5G5B5
A1R5G5B5 Pixel format.
Definition: dds.h:278
DWORD dwMipMapCount
Number of mipmap levels, otherwise unused.
Definition: dds.h:323
DWORD dwGBitMask
Green (or U) mask for reading color data.
Definition: dds.h:240
DWORD dwFourCC
Four-character codes for specifying compressed or custom formats.
Definition: dds.h:237
D3D10_RESOURCE_DIMENSION resourceDimension
Identifies the type of resource.
Definition: dds.h:336
const DDS_PIXELFORMAT DDSPF_DXT1
DXT1 Pixel format.
Definition: dds.h:266
const DDS_PIXELFORMAT DDSPF_A8R8G8B8
A8R8G8B8 Pixel format.
Definition: dds.h:276
DWORD dwABitMask
Alpha mask for reading alpha data.
Definition: dds.h:242
DWORD dwPitchOrLinearSize
The pitch or number of bytes per scan line in an uncompressed texture;.
Definition: dds.h:321
const DDS_PIXELFORMAT DDSPF_DXT2
DXT2 Pixel format.
Definition: dds.h:268
const DDS_PIXELFORMAT DDSPF_DXT4
DXT4 Pixel format.
Definition: dds.h:272
DWORD dwBBitMask
Blue (or V) mask for reading color data.
Definition: dds.h:241
DWORD dwSize
Structure size; set to 32 (bytes).
Definition: dds.h:235
enum _D3DFORMAT D3DFORMAT
_D3DFORMAT
Definition: dds.h:80
Definition: dds.h:333
UINT miscFlag
Identifies other, less common options for resources.
Definition: dds.h:337