Windows apps
Collapse the table of content
Expand the table of content
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

DDS_HEADER structure

Describes a DDS file header.

Syntax


typedef struct {
  DWORD           dwSize;
  DWORD           dwFlags;
  DWORD           dwHeight;
  DWORD           dwWidth;
  DWORD           dwPitchOrLinearSize;
  DWORD           dwDepth;
  DWORD           dwMipMapCount;
  DWORD           dwReserved1[11];
  DDS_PIXELFORMAT ddspf;
  DWORD           dwCaps;
  DWORD           dwCaps2;
  DWORD           dwCaps3;
  DWORD           dwCaps4;
  DWORD           dwReserved2;
} DDS_HEADER;

Members

dwSize

Type: DWORD

Size of structure. This member must be set to 124.

dwFlags

Type: DWORD

Flags to indicate which members contain valid data.

FlagDescriptionValue
DDSD_CAPSRequired in every .dds file.0x1
DDSD_HEIGHTRequired in every .dds file.0x2
DDSD_WIDTHRequired in every .dds file.0x4
DDSD_PITCHRequired when pitch is provided for an uncompressed texture.0x8
DDSD_PIXELFORMATRequired in every .dds file.0x1000
DDSD_MIPMAPCOUNTRequired in a mipmapped texture.0x20000
DDSD_LINEARSIZERequired when pitch is provided for a compressed texture.0x80000
DDSD_DEPTHRequired in a depth texture.0x800000

 

Note  When you write .dds files, you should set the DDSD_CAPS and DDSD_PIXELFORMAT flags, and for mipmapped textures you should also set the DDSD_MIPMAPCOUNT flag. However, when you read a .dds file, you should not rely on the DDSD_CAPS, DDSD_PIXELFORMAT, and DDSD_MIPMAPCOUNT flags being set because some writers of such a file might not set these flags.
 

The DDS_HEADER_FLAGS_TEXTURE flag, which is defined in Dds.h, is a bitwise-OR combination of the DDSD_CAPS, DDSD_HEIGHT, DDSD_WIDTH, and DDSD_PIXELFORMAT flags.

The DDS_HEADER_FLAGS_MIPMAP flag, which is defined in Dds.h, is equal to the DDSD_MIPMAPCOUNT flag.

The DDS_HEADER_FLAGS_VOLUME flag, which is defined in Dds.h, is equal to the DDSD_DEPTH flag.

The DDS_HEADER_FLAGS_PITCH flag, which is defined in Dds.h, is equal to the DDSD_PITCH flag.

The DDS_HEADER_FLAGS_LINEARSIZE flag, which is defined in Dds.h, is equal to the DDSD_LINEARSIZE flag.

dwHeight

Type: DWORD

Surface height (in pixels).

dwWidth

Type: DWORD

Surface width (in pixels).

dwPitchOrLinearSize

Type: DWORD

The pitch or number of bytes per scan line in an uncompressed texture; the total number of bytes in the top level texture for a compressed texture. For information about how to compute the pitch, see the DDS File Layout section of the Programming Guide for DDS.

dwDepth

Type: DWORD

Depth of a volume texture (in pixels), otherwise unused.

dwMipMapCount

Type: DWORD

Number of mipmap levels, otherwise unused.

dwReserved1[11]

Type: DWORD

Unused.

ddspf

Type: DDS_PIXELFORMAT

The pixel format (see DDS_PIXELFORMAT).

dwCaps

Type: DWORD

Specifies the complexity of the surfaces stored.

FlagDescriptionValue
DDSCAPS_COMPLEXOptional; must be used on any file that contains more than one surface (a mipmap, a cubic environment map, or mipmapped volume texture).0x8
DDSCAPS_MIPMAPOptional; should be used for a mipmap.0x400000
DDSCAPS_TEXTURERequired0x1000

 

Note  When you write .dds files, you should set the DDSCAPS_TEXTURE flag, and for multiple surfaces you should also set the DDSCAPS_COMPLEX flag. However, when you read a .dds file, you should not rely on the DDSCAPS_TEXTURE and DDSCAPS_COMPLEX flags being set because some writers of such a file might not set these flags.
 

The DDS_SURFACE_FLAGS_MIPMAP flag, which is defined in Dds.h, is a bitwise-OR combination of the DDSCAPS_COMPLEX and DDSCAPS_MIPMAP flags.

The DDS_SURFACE_FLAGS_TEXTURE flag, which is defined in Dds.h, is equal to the DDSCAPS_TEXTURE flag.

The DDS_SURFACE_FLAGS_CUBEMAP flag, which is defined in Dds.h, is equal to the DDSCAPS_COMPLEX flag.

dwCaps2

Type: DWORD

Additional detail about the surfaces stored.

FlagDescriptionValue
DDSCAPS2_CUBEMAPRequired for a cube map.0x200
DDSCAPS2_CUBEMAP_POSITIVEXRequired when these surfaces are stored in a cube map.0x400
DDSCAPS2_CUBEMAP_NEGATIVEXRequired when these surfaces are stored in a cube map.0x800
DDSCAPS2_CUBEMAP_POSITIVEYRequired when these surfaces are stored in a cube map.0x1000
DDSCAPS2_CUBEMAP_NEGATIVEYRequired when these surfaces are stored in a cube map.0x2000
DDSCAPS2_CUBEMAP_POSITIVEZRequired when these surfaces are stored in a cube map.0x4000
DDSCAPS2_CUBEMAP_NEGATIVEZRequired when these surfaces are stored in a cube map.0x8000
DDSCAPS2_VOLUMERequired for a volume texture.0x200000

 

The DDS_CUBEMAP_POSITIVEX flag, which is defined in Dds.h, is a bitwise-OR combination of the DDSCAPS2_CUBEMAP and DDSCAPS2_CUBEMAP_POSITIVEX flags.

The DDS_CUBEMAP_NEGATIVEX flag, which is defined in Dds.h, is a bitwise-OR combination of the DDSCAPS2_CUBEMAP and DDSCAPS2_CUBEMAP_NEGATIVEX flags.

The DDS_CUBEMAP_POSITIVEY flag, which is defined in Dds.h, is a bitwise-OR combination of the DDSCAPS2_CUBEMAP and DDSCAPS2_CUBEMAP_POSITIVEY flags.

The DDS_CUBEMAP_NEGATIVEY flag, which is defined in Dds.h, is a bitwise-OR combination of the DDSCAPS2_CUBEMAP and DDSCAPS2_CUBEMAP_NEGATIVEY flags.

The DDS_CUBEMAP_POSITIVEZ flag, which is defined in Dds.h, is a bitwise-OR combination of the DDSCAPS2_CUBEMAP and DDSCAPS2_CUBEMAP_POSITIVEZ flags.

The DDS_CUBEMAP_NEGATIVEZ flag, which is defined in Dds.h, is a bitwise-OR combination of the DDSCAPS2_CUBEMAP and DDSCAPS2_CUBEMAP_NEGATIVEZ flags.

The DDS_CUBEMAP_ALLFACES flag, which is defined in Dds.h, is a bitwise-OR combination of the DDS_CUBEMAP_POSITIVEX, DDS_CUBEMAP_NEGATIVEX, DDS_CUBEMAP_POSITIVEY, DDS_CUBEMAP_NEGATIVEY, DDS_CUBEMAP_POSITIVEZ, and DDSCAPS2_CUBEMAP_NEGATIVEZ flags.

The DDS_FLAGS_VOLUME flag, which is defined in Dds.h, is equal to the DDSCAPS2_VOLUME flag.

Note  Although Direct3D 9 supports partial cube-maps, Direct3D 10, 10.1, and 11 require that you define all six cube-map faces (that is, you must set DDS_CUBEMAP_ALLFACES).
 
dwCaps3

Type: DWORD

Unused.

dwCaps4

Type: DWORD

Unused.

dwReserved2

Type: DWORD

Unused.

Remarks

Include flags in dwFlags for the members of the structure that contain valid data.

Use this structure in combination with a DDS_HEADER_DXT10 to store a resource array in a DDS file. For more information, see texture arrays.

DDS_HEADER is identical to the DirectDraw DDSURFACEDESC2 structure without DirectDraw dependencies.

Requirements

Header

Dds.h

See also

Reference for DDS

 

 

Community Additions

Show:
© 2018 Microsoft