GL Studio 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) 2015 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 
67 ///////////////////////////////////////////////////////////////////////////////
68 // stuff from d3d9types.h
69 ///////////////////////////////////////////////////////////////////////////////
70 #ifndef _d3d9TYPES_H_
71 
72 /** Combines four charaters into a DWORD. Used for specified compressed texture formats.
73  * See http://msdn.microsoft.com/en-us/library/bb172558.aspx#DXTn_Compressed_Texture_Formats
74  */
75 #ifndef MAKEFOURCC
76  #define MAKEFOURCC(ch0, ch1, ch2, ch3) \
77  ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \
78  ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))
79 #endif /* defined(MAKEFOURCC) */
80 
81 /** Defines the various types of surface formats. http://msdn.microsoft.com/en-us/library/bb172558.aspx
82  */
83 typedef enum _D3DFORMAT
84 {
85  D3DFMT_UNKNOWN = 0,
86 
87  D3DFMT_R8G8B8 = 20,
88  D3DFMT_A8R8G8B8 = 21,
89  D3DFMT_X8R8G8B8 = 22,
90  D3DFMT_R5G6B5 = 23,
91  D3DFMT_X1R5G5B5 = 24,
92  D3DFMT_A1R5G5B5 = 25,
93  D3DFMT_A4R4G4B4 = 26,
94  D3DFMT_R3G3B2 = 27,
95  D3DFMT_A8 = 28,
96  D3DFMT_A8R3G3B2 = 29,
97  D3DFMT_X4R4G4B4 = 30,
98  D3DFMT_A2B10G10R10 = 31,
99  D3DFMT_A8B8G8R8 = 32,
100  D3DFMT_X8B8G8R8 = 33,
101  D3DFMT_G16R16 = 34,
102  D3DFMT_A2R10G10B10 = 35,
103  D3DFMT_A16B16G16R16 = 36,
104 
105  D3DFMT_A8P8 = 40,
106  D3DFMT_P8 = 41,
107 
108  D3DFMT_L8 = 50,
109  D3DFMT_A8L8 = 51,
110  D3DFMT_A4L4 = 52,
111 
112  D3DFMT_V8U8 = 60,
113  D3DFMT_L6V5U5 = 61,
114  D3DFMT_X8L8V8U8 = 62,
115  D3DFMT_Q8W8V8U8 = 63,
116  D3DFMT_V16U16 = 64,
117  D3DFMT_A2W10V10U10 = 67,
118 
119  D3DFMT_UYVY = MAKEFOURCC('U', 'Y', 'V', 'Y'),
120  D3DFMT_R8G8_B8G8 = MAKEFOURCC('R', 'G', 'B', 'G'),
121  D3DFMT_YUY2 = MAKEFOURCC('Y', 'U', 'Y', '2'),
122  D3DFMT_G8R8_G8B8 = MAKEFOURCC('G', 'R', 'G', 'B'),
123  D3DFMT_DXT1 = MAKEFOURCC('D', 'X', 'T', '1'),
124  D3DFMT_DXT2 = MAKEFOURCC('D', 'X', 'T', '2'),
125  D3DFMT_DXT3 = MAKEFOURCC('D', 'X', 'T', '3'),
126  D3DFMT_DXT4 = MAKEFOURCC('D', 'X', 'T', '4'),
127  D3DFMT_DXT5 = MAKEFOURCC('D', 'X', 'T', '5'),
128 
129  D3DFMT_D16_LOCKABLE = 70,
130  D3DFMT_D32 = 71,
131  D3DFMT_D15S1 = 73,
132  D3DFMT_D24S8 = 75,
133  D3DFMT_D24X8 = 77,
134  D3DFMT_D24X4S4 = 79,
135  D3DFMT_D16 = 80,
136 
137  D3DFMT_D32F_LOCKABLE = 82,
138  D3DFMT_D24FS8 = 83,
139 
140 /* D3D9Ex only -- */
141 #if !defined(D3D_DISABLE_9EX)
142 
143  /* Z-Stencil formats valid for CPU access */
144  D3DFMT_D32_LOCKABLE = 84,
145  D3DFMT_S8_LOCKABLE = 85,
146 
147 #endif // !D3D_DISABLE_9EX
148 /* -- D3D9Ex only */
149 
150 
151  D3DFMT_L16 = 81,
152 
153  D3DFMT_VERTEXDATA =100,
154  D3DFMT_INDEX16 =101,
155  D3DFMT_INDEX32 =102,
156 
157  D3DFMT_Q16W16V16U16 =110,
158 
159  D3DFMT_MULTI2_ARGB8 = MAKEFOURCC('M','E','T','1'),
160 
161  // Floating point surface formats
162 
163  // s10e5 formats (16-bits per channel)
164  D3DFMT_R16F = 111,
165  D3DFMT_G16R16F = 112,
166  D3DFMT_A16B16G16R16F = 113,
167 
168  // IEEE s23e8 formats (32-bits per channel)
169  D3DFMT_R32F = 114,
170  D3DFMT_G32R32F = 115,
171  D3DFMT_A32B32G32R32F = 116,
172 
173  D3DFMT_CxV8U8 = 117,
174 
175 /* D3D9Ex only -- */
176 #if !defined(D3D_DISABLE_9EX)
177 
178  // Monochrome 1 bit per pixel format
179  D3DFMT_A1 = 118,
180 
181  // 2.8 biased fixed point
182  D3DFMT_A2B10G10R10_XR_BIAS = 119,
183 
184 
185  // Binary format indicating that the data has no inherent type
186  D3DFMT_BINARYBUFFER = 199,
187 
188 #endif // !D3D_DISABLE_9EX
189 /* -- D3D9Ex only */
190 
191 
192  D3DFMT_FORCE_DWORD =0x7fffffff
193 } D3DFORMAT;
194 
195 #endif // _d3d9TYPES_H_
196 
197 
198 
199 ///////////////////////////////////////////////////////////////////////////////
200 // stuff from d3d10.h
201 ///////////////////////////////////////////////////////////////////////////////
202 #ifndef __d3d10_h__
203 
204 /** Maximum number of mipmap levels a texture resource may have.
205  * http://msdn.microsoft.com/en-us/library/bb509540.aspx
206  */
207 #define D3D10_REQ_MIP_LEVELS ( 14 )
208 
209 /** Maximum array size of a 2D texture array.
210  * http://msdn.microsoft.com/en-us/library/bb509540.aspx
211  */
212 #define D3D10_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION ( 512 )
213 
214 /** Identifies the type of resource being used. http://msdn.microsoft.com/en-us/library/bb172411.aspx
215  */
216 typedef
218  { D3D10_RESOURCE_DIMENSION_UNKNOWN = 0,
219  D3D10_RESOURCE_DIMENSION_BUFFER = 1,
220  D3D10_RESOURCE_DIMENSION_TEXTURE1D = 2,
221  D3D10_RESOURCE_DIMENSION_TEXTURE2D = 3,
222  D3D10_RESOURCE_DIMENSION_TEXTURE3D = 4
224 
225 #endif // __d3d10_h__
226 
227 
228 
229 ///////////////////////////////////////////////////////////////////////////////
230 // stuff from the original dds.h
231 ///////////////////////////////////////////////////////////////////////////////
232 #ifndef _DDS_H_
233 
234 #pragma pack(push,1)
235 
236 /** A DWORD (magic number) containing the four character code value 'DDS '
237  * It is the first value in a DDS file
238  */
239 #define DDS_MAGIC 0x20534444 // "DDS "
240 
241 /** Surface pixel format. See http://msdn.microsoft.com/en-us/library/bb943984.aspx
242  */
244 {
245  DWORD dwSize; ///< Structure size; set to 32 (bytes).
246  DWORD dwFlags; ///< Values which indicate what type of data is in the surface.
247  DWORD dwFourCC; ///< Four-character codes for specifying compressed or custom formats.
248  DWORD dwRGBBitCount; ///< Number of bits in an RGB (possibly including alpha) format.
249  DWORD dwRBitMask; ///< Red (or lumiannce or Y) mask for reading color data.
250  DWORD dwGBitMask; ///< Green (or U) mask for reading color data.
251  DWORD dwBBitMask; ///< Blue (or V) mask for reading color data.
252  DWORD dwABitMask; ///< Alpha mask for reading alpha data.
253 };
254 
255 /// DDPF_FOURCC
256 /// Texture contains compressed RGB data; dwFourCC contains valid data.
257 #define DDS_FOURCC 0x00000004
258 
259 /// DDPF_RGB - Texture contains uncompressed RGB data;
260 /// dwRGBBitCount and the RGB masks (dwRBitMask, dwGBitMask, dwBBitMask) contain valid data.
261 #define DDS_RGB 0x00000040
262 
263 /// DDPF_RGB | DDPF_ALPHAPIXELS - Texture contains uncompressed RGBA data;
264 /// dwRGBBitCount and the RGB masks (dwRBitMask, dwGBitMask, dwBBitMask, dwABitMask) contain valid data.
265 #define DDS_RGBA 0x00000041
266 
267 /// DDPF_LUMINANCE - Used in some older DDS files for single channel color uncompressed data
268 /// (dwRGBBitCount contains the luminance channel bit count; dwRBitMask contains the channel mask).
269 /// Can be combined with DDPF_ALPHAPIXELS for a two channel DDS file.
270 #define DDS_LUMINANCE 0x00020000
271 
272 /// DDPF_ALPHA - Used in some older DDS files for alpha channel only uncompressed data
273 /// (dwRGBBitCount contains the alpha channel bitcount; dwABitMask contains valid data)
274 #define DDS_ALPHA 0x00000002
275 
277  { sizeof(DDS_PIXELFORMAT), DDS_FOURCC, MAKEFOURCC('D','X','T','1'), 0, 0, 0, 0, 0 }; ///< DXT1 Pixel format
278 
280  { sizeof(DDS_PIXELFORMAT), DDS_FOURCC, MAKEFOURCC('D','X','T','2'), 0, 0, 0, 0, 0 }; ///< DXT2 Pixel format
281 
283  { sizeof(DDS_PIXELFORMAT), DDS_FOURCC, MAKEFOURCC('D','X','T','3'), 0, 0, 0, 0, 0 }; ///< DXT3 Pixel format
284 
286  { sizeof(DDS_PIXELFORMAT), DDS_FOURCC, MAKEFOURCC('D','X','T','4'), 0, 0, 0, 0, 0 }; ///< DXT4 Pixel format
287 
289  { sizeof(DDS_PIXELFORMAT), DDS_FOURCC, MAKEFOURCC('D','X','T','5'), 0, 0, 0, 0, 0 }; ///< DXT5 Pixel format
290 
292  { sizeof(DDS_PIXELFORMAT), DDS_RGBA, 0, 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 }; ///< A8R8G8B8 Pixel format
293 
295  { sizeof(DDS_PIXELFORMAT), DDS_RGBA, 0, 16, 0x00007c00, 0x000003e0, 0x0000001f, 0x00008000 }; ///< A1R5G5B5 Pixel format
296 
298  { sizeof(DDS_PIXELFORMAT), DDS_RGBA, 0, 16, 0x00000f00, 0x000000f0, 0x0000000f, 0x0000f000 }; ///< A4R4G4B4 Pixel format
299 
301  { sizeof(DDS_PIXELFORMAT), DDS_RGB, 0, 24, 0x00ff0000, 0x0000ff00, 0x000000ff, 0x00000000 }; ///< R8G8B8 Pixel format
302 
304  { sizeof(DDS_PIXELFORMAT), DDS_RGB, 0, 16, 0x0000f800, 0x000007e0, 0x0000001f, 0x00000000 }; ///< R5G6B5 Pixel format
305 
306 // This indicates the DDS_HEADER_DXT10 extension is present (the format is in dxgiFormat)
308  { sizeof(DDS_PIXELFORMAT), DDS_FOURCC, MAKEFOURCC('D','X','1','0'), 0, 0, 0, 0, 0 }; ///< DX10 Pixel format
309 
310 #define DDS_HEADER_FLAGS_TEXTURE 0x00001007 ///< DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH | DDSD_PIXELFORMAT
311 #define DDS_HEADER_FLAGS_MIPMAP 0x00020000 ///< DDSD_MIPMAPCOUNT
312 #define DDS_HEADER_FLAGS_VOLUME 0x00800000 ///< DDSD_DEPTH
313 #define DDS_HEADER_FLAGS_PITCH 0x00000008 ///< DDSD_PITCH
314 #define DDS_HEADER_FLAGS_LINEARSIZE 0x00080000 ///< DDSD_LINEARSIZE
315 
316 #define DDS_SURFACE_FLAGS_TEXTURE 0x00001000 ///< DDSCAPS_TEXTURE
317 #define DDS_SURFACE_FLAGS_MIPMAP 0x00400008 ///< DDSCAPS_COMPLEX | DDSCAPS_MIPMAP
318 #define DDS_SURFACE_FLAGS_CUBEMAP 0x00000008 ///< DDSCAPS_COMPLEX
319 
320 #define DDSCAPS2_CUBEMAP 0x00000200
321 #define DDS_CUBEMAP_POSITIVEX 0x00000600 ///< DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_POSITIVEX
322 #define DDS_CUBEMAP_NEGATIVEX 0x00000a00 ///< DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_NEGATIVEX
323 #define DDS_CUBEMAP_POSITIVEY 0x00001200 ///< DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_POSITIVEY
324 #define DDS_CUBEMAP_NEGATIVEY 0x00002200 ///< DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_NEGATIVEY
325 #define DDS_CUBEMAP_POSITIVEZ 0x00004200 ///< DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_POSITIVEZ
326 #define DDS_CUBEMAP_NEGATIVEZ 0x00008200 ///< DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_NEGATIVEZ
327 
328 /** DDS structure contains all faces
329  */
330 #define DDS_CUBEMAP_ALLFACES ( DDS_CUBEMAP_POSITIVEX | DDS_CUBEMAP_NEGATIVEX |\
331  DDS_CUBEMAP_POSITIVEY | DDS_CUBEMAP_NEGATIVEY |\
332  DDS_CUBEMAP_POSITIVEZ | DDS_CUBEMAP_NEGATIVEZ )
333 
334 #define DDS_FLAGS_VOLUME 0x00200000 ///< DDSCAPS2_VOLUME
335 
336 /** Describes a DDS file header. See http://msdn.microsoft.com/en-us/library/bb943982.aspx
337  */
338 typedef struct
339 {
340  DWORD dwSize; ///< Size of structure. This member must be set to 124.
341  DWORD dwHeaderFlags; ///< Flags to indicate which members contain valid data.
342  DWORD dwHeight; ///< Surface height (in pixels).
343  DWORD dwWidth; ///< Surface width (in pixels).
344  DWORD dwPitchOrLinearSize; ///< The pitch or number of bytes per scan line in an uncompressed texture;
345  DWORD dwDepth; ///< Depth of a volume texture (in pixels), only if DDS_HEADER_FLAGS_VOLUME is set in dwHeaderFlags
346  DWORD dwMipMapCount; ///< Number of mipmap levels, otherwise unused.
347  DWORD dwReserved1[11]; ///< Unused.
348  DDS_PIXELFORMAT ddspf; ///< The pixel format
349  DWORD dwSurfaceFlags; ///< Specifies the complexity of the surfaces stored.
350  DWORD dwCubemapFlags; ///< Additional detail about the surfaces stored.
351  DWORD dwReserved2[3]; ///< Unused.
352 } DDS_HEADER;
353 
354 /** DDS header extension to handle resource arrays. See http://msdn.microsoft.com/en-us/library/bb943983.aspx
355  */
356 typedef struct
357 {
358  DXGI_FORMAT dxgiFormat; ///< The surface pixel format
359  D3D10_RESOURCE_DIMENSION resourceDimension; ///< Identifies the type of resource.
360  UINT miscFlag; ///< Identifies other, less common options for resources.
361  UINT arraySize; ///< The number of elements in the array.
362  UINT reserved; ///< Reserved for future use.
364 
365 // THE BELOW FORMATS ARE USED IN LUMEN UNIT TEST AND WERE NOT PART OF THE ORIGINAL MICROSOFT DDS.H FILE
366 
367 #define DDS_LUMINANCEA 0x00020001 // DDPF_LUMINANCE | DDPF_ALPHAPIXELS
368 
369 const DDS_PIXELFORMAT DDSPF_A8 =
370  { sizeof(DDS_PIXELFORMAT), DDS_ALPHA, 0, 8, 0x00, 0x00, 0x00, 0xff };
371 
372 const DDS_PIXELFORMAT DDSPF_A8L8 =
373  { sizeof(DDS_PIXELFORMAT), DDS_LUMINANCEA, 0, 16, 0x00ff, 0x0000, 0x0000, 0xff00 };
374 
375 #pragma pack(pop)
376 
377 #endif // _DDS_H_
378 
379 
380 
381 #endif // INCLUDED_DDS_H
const DDS_PIXELFORMAT DDSPF_DX10
DX10 Pixel format.
Definition: dds.h:307
DWORD dwWidth
Surface width (in pixels).
Definition: dds.h:343
Definition: dds.h:243
const DDS_PIXELFORMAT DDSPF_R8G8B8
R8G8B8 Pixel format.
Definition: dds.h:300
const DDS_PIXELFORMAT DDSPF_DXT5
DXT5 Pixel format.
Definition: dds.h:288
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:358
const DDS_PIXELFORMAT DDSPF_DXT3
DXT3 Pixel format.
Definition: dds.h:282
DWORD dwFlags
Values which indicate what type of data is in the surface.
Definition: dds.h:246
DDS_PIXELFORMAT ddspf
The pixel format.
Definition: dds.h:348
DWORD dwRGBBitCount
Number of bits in an RGB (possibly including alpha) format.
Definition: dds.h:248
DWORD dwRBitMask
Red (or lumiannce or Y) mask for reading color data.
Definition: dds.h:249
const DDS_PIXELFORMAT DDSPF_A4R4G4B4
A4R4G4B4 Pixel format.
Definition: dds.h:297
UINT arraySize
The number of elements in the array.
Definition: dds.h:361
DWORD dwHeight
Surface height (in pixels).
Definition: dds.h:342
DWORD dwSize
Size of structure. This member must be set to 124.
Definition: dds.h:340
DWORD dwSurfaceFlags
Specifies the complexity of the surfaces stored.
Definition: dds.h:349
DWORD dwHeaderFlags
Flags to indicate which members contain valid data.
Definition: dds.h:341
#define DDS_ALPHA
Definition: dds.h:274
DWORD dwDepth
Depth of a volume texture (in pixels), only if DDS_HEADER_FLAGS_VOLUME is set in dwHeaderFlags.
Definition: dds.h:345
#define DDS_RGB
Definition: dds.h:261
UINT reserved
Reserved for future use.
Definition: dds.h:362
#define DDS_RGBA
Definition: dds.h:265
const DDS_PIXELFORMAT DDSPF_R5G6B5
R5G6B5 Pixel format.
Definition: dds.h:303
#define MAKEFOURCC(ch0, ch1, ch2, ch3)
Definition: dds.h:76
DWORD dwCubemapFlags
Additional detail about the surfaces stored.
Definition: dds.h:350
uint32_t UINT
Type used in orignal DirectX dds.h file.
Definition: dds.h:61
Definition: dds.h:338
#define DDS_FOURCC
Definition: dds.h:257
D3D10_RESOURCE_DIMENSION
Definition: dds.h:216
const DDS_PIXELFORMAT DDSPF_A1R5G5B5
A1R5G5B5 Pixel format.
Definition: dds.h:294
DWORD dwMipMapCount
Number of mipmap levels, otherwise unused.
Definition: dds.h:346
DWORD dwGBitMask
Green (or U) mask for reading color data.
Definition: dds.h:250
DWORD dwFourCC
Four-character codes for specifying compressed or custom formats.
Definition: dds.h:247
D3D10_RESOURCE_DIMENSION resourceDimension
Identifies the type of resource.
Definition: dds.h:359
const DDS_PIXELFORMAT DDSPF_DXT1
DXT1 Pixel format.
Definition: dds.h:276
const DDS_PIXELFORMAT DDSPF_A8R8G8B8
A8R8G8B8 Pixel format.
Definition: dds.h:291
DWORD dwABitMask
Alpha mask for reading alpha data.
Definition: dds.h:252
DWORD dwPitchOrLinearSize
The pitch or number of bytes per scan line in an uncompressed texture;.
Definition: dds.h:344
const DDS_PIXELFORMAT DDSPF_DXT2
DXT2 Pixel format.
Definition: dds.h:279
const DDS_PIXELFORMAT DDSPF_DXT4
DXT4 Pixel format.
Definition: dds.h:285
DWORD dwBBitMask
Blue (or V) mask for reading color data.
Definition: dds.h:251
DWORD dwSize
Structure size; set to 32 (bytes).
Definition: dds.h:245
enum _D3DFORMAT D3DFORMAT
_D3DFORMAT
Definition: dds.h:83
Definition: dds.h:356
UINT miscFlag
Identifies other, less common options for resources.
Definition: dds.h:360