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
14reproduced, in whole or part, in any form, or by any means of electronic,
15mechanical, or otherwise, without the written permission of DiSTI. Said
16permission may be derived through the purchase of applicable DiSTI product
17licenses which detail the distribution rights of this content and any
18Derivative Works based on this or other copyrighted DiSTI Software.
19
20 NO WARRANTY. THE SOFTWARE IS PROVIDED "AS-IS," WITHOUT WARRANTY OF ANY KIND,
21AND ANY USE OF THIS SOFTWARE PRODUCT IS AT YOUR OWN RISK. TO THE MAXIMUM EXTENT
22PERMITTED BY APPLICABLE LAW, DISTI AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES
23AND CONDITIONS, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
24IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY AND/OR FITNESS FOR A
25PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT, WITH REGARD TO THE SOFTWARE.
26
27 LIMITATION OF LIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW,
28IN NO EVENT SHALL DISTI OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
29INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION,
30DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS
31INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR
32INABILITY TO USE THE SOFTWARE, EVEN IF DISTI HAS BEEN ADVISED OF THE POSSIBILITY
33OF SUCH DAMAGES. DISTI'S ENTIRE LIABILITY AND YOUR EXCLUSIVE REMEDY SHALL NOT
34EXCEED FIVE DOLLARS (US$5.00).
35
36 The aforementioned terms and restrictions are governed by the laws of the
37State of Florida and the United States of America. Use, distribution,
38duplication, 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
59typedef uint32_t DWORD; ///< Type used in orignal DirectX dds.h file
60typedef unsigned char BYTE; ///< Type used in orignal DirectX dds.h file
61typedef 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 */
80typedef 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
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
266const DDS_PIXELFORMAT DDSPF_DXT1 = { sizeof( DDS_PIXELFORMAT ), DDS_FOURCC, MAKEFOURCC( 'D', 'X', 'T', '1' ), 0, 0, 0, 0, 0 }; ///< DXT1 Pixel format
267
268const DDS_PIXELFORMAT DDSPF_DXT2 = { sizeof( DDS_PIXELFORMAT ), DDS_FOURCC, MAKEFOURCC( 'D', 'X', 'T', '2' ), 0, 0, 0, 0, 0 }; ///< DXT2 Pixel format
269
270const DDS_PIXELFORMAT DDSPF_DXT3 = { sizeof( DDS_PIXELFORMAT ), DDS_FOURCC, MAKEFOURCC( 'D', 'X', 'T', '3' ), 0, 0, 0, 0, 0 }; ///< DXT3 Pixel format
271
272const DDS_PIXELFORMAT DDSPF_DXT4 = { sizeof( DDS_PIXELFORMAT ), DDS_FOURCC, MAKEFOURCC( 'D', 'X', 'T', '4' ), 0, 0, 0, 0, 0 }; ///< DXT4 Pixel format
273
274const DDS_PIXELFORMAT DDSPF_DXT5 = { sizeof( DDS_PIXELFORMAT ), DDS_FOURCC, MAKEFOURCC( 'D', 'X', 'T', '5' ), 0, 0, 0, 0, 0 }; ///< DXT5 Pixel format
275
276const DDS_PIXELFORMAT DDSPF_A8R8G8B8 = { sizeof( DDS_PIXELFORMAT ), DDS_RGBA, 0, 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 }; ///< A8R8G8B8 Pixel format
277
278const DDS_PIXELFORMAT DDSPF_A1R5G5B5 = { sizeof( DDS_PIXELFORMAT ), DDS_RGBA, 0, 16, 0x00007c00, 0x000003e0, 0x0000001f, 0x00008000 }; ///< A1R5G5B5 Pixel format
279
280const DDS_PIXELFORMAT DDSPF_A4R4G4B4 = { sizeof( DDS_PIXELFORMAT ), DDS_RGBA, 0, 16, 0x00000f00, 0x000000f0, 0x0000000f, 0x0000f000 }; ///< A4R4G4B4 Pixel format
281
282const DDS_PIXELFORMAT DDSPF_R8G8B8 = { sizeof( DDS_PIXELFORMAT ), DDS_RGB, 0, 24, 0x00ff0000, 0x0000ff00, 0x000000ff, 0x00000000 }; ///< R8G8B8 Pixel format
283
284const 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)
287const 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 ///< DDSCAPS2_CUBEMAP
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 */
315typedef 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 */
333typedef 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/// \cond INTERNAL
344# define DDS_LUMINANCEA 0x00020001 ///< DDPF_LUMINANCE | DDPF_ALPHAPIXELS
345
346const DDS_PIXELFORMAT DDSPF_A8 = { sizeof( DDS_PIXELFORMAT ), DDS_ALPHA, 0, 8, 0x00, 0x00, 0x00, 0xff };
347
348const DDS_PIXELFORMAT DDSPF_A8L8 = { sizeof( DDS_PIXELFORMAT ), DDS_LUMINANCEA, 0, 16, 0x00ff, 0x0000, 0x0000, 0xff00 };
349/// \endcond
350
351# pragma pack( pop )
352
353#endif // _DDS_H_
354
355#endif // INCLUDED_DDS_H
const DDS_PIXELFORMAT DDSPF_R5G6B5
R5G6B5 Pixel format.
Definition: dds.h:284
#define DDS_FOURCC
Definition: dds.h:247
uint32_t UINT
Type used in orignal DirectX dds.h file.
Definition: dds.h:61
unsigned char BYTE
Type used in orignal DirectX dds.h file.
Definition: dds.h:60
const DDS_PIXELFORMAT DDSPF_DX10
DX10 Pixel format.
Definition: dds.h:287
const DDS_PIXELFORMAT DDSPF_A4R4G4B4
A4R4G4B4 Pixel format.
Definition: dds.h:280
const DDS_PIXELFORMAT DDSPF_A1R5G5B5
A1R5G5B5 Pixel format.
Definition: dds.h:278
_D3DFORMAT
Definition: dds.h:81
#define MAKEFOURCC(ch0, ch1, ch2, ch3)
Definition: dds.h:74
#define DDS_RGBA
Definition: dds.h:255
const DDS_PIXELFORMAT DDSPF_DXT3
DXT3 Pixel format.
Definition: dds.h:270
#define DDS_ALPHA
Definition: dds.h:264
const DDS_PIXELFORMAT DDSPF_DXT2
DXT2 Pixel format.
Definition: dds.h:268
#define DDS_RGB
Definition: dds.h:251
const DDS_PIXELFORMAT DDSPF_R8G8B8
R8G8B8 Pixel format.
Definition: dds.h:282
const DDS_PIXELFORMAT DDSPF_DXT1
DXT1 Pixel format.
Definition: dds.h:266
enum _D3DFORMAT D3DFORMAT
const DDS_PIXELFORMAT DDSPF_DXT4
DXT4 Pixel format.
Definition: dds.h:272
const DDS_PIXELFORMAT DDSPF_A8R8G8B8
A8R8G8B8 Pixel format.
Definition: dds.h:276
D3D10_RESOURCE_DIMENSION
Definition: dds.h:209
uint32_t DWORD
Type used in orignal DirectX dds.h file.
Definition: dds.h:59
const DDS_PIXELFORMAT DDSPF_DXT5
DXT5 Pixel format.
Definition: dds.h:274
Definition: dds.h:334
UINT reserved
Reserved for future use.
Definition: dds.h:339
D3D10_RESOURCE_DIMENSION resourceDimension
Identifies the type of resource.
Definition: dds.h:336
UINT arraySize
The number of elements in the array.
Definition: dds.h:338
DXGI_FORMAT dxgiFormat
The surface pixel format.
Definition: dds.h:335
UINT miscFlag
Identifies other, less common options for resources.
Definition: dds.h:337
Definition: dds.h:316
DWORD dwHeaderFlags
Flags to indicate which members contain valid data.
Definition: dds.h:318
DWORD dwWidth
Surface width (in pixels).
Definition: dds.h:320
DWORD dwHeight
Surface height (in pixels).
Definition: dds.h:319
DWORD dwDepth
Depth of a volume texture (in pixels), only if DDS_HEADER_FLAGS_VOLUME is set in dwHeaderFlags.
Definition: dds.h:322
DWORD dwPitchOrLinearSize
The pitch or number of bytes per scan line in an uncompressed texture;.
Definition: dds.h:321
DWORD dwCubemapFlags
Additional detail about the surfaces stored.
Definition: dds.h:327
DWORD dwSize
Size of structure. This member must be set to 124.
Definition: dds.h:317
DWORD dwMipMapCount
Number of mipmap levels, otherwise unused.
Definition: dds.h:323
DWORD dwSurfaceFlags
Specifies the complexity of the surfaces stored.
Definition: dds.h:326
DDS_PIXELFORMAT ddspf
The pixel format.
Definition: dds.h:325
Definition: dds.h:234
DWORD dwGBitMask
Green (or U) mask for reading color data.
Definition: dds.h:240
DWORD dwABitMask
Alpha mask for reading alpha data.
Definition: dds.h:242
DWORD dwBBitMask
Blue (or V) mask for reading color data.
Definition: dds.h:241
DWORD dwFourCC
Four-character codes for specifying compressed or custom formats.
Definition: dds.h:237
DWORD dwFlags
Values which indicate what type of data is in the surface.
Definition: dds.h:236
DWORD dwSize
Structure size; set to 32 (bytes).
Definition: dds.h:235
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