DDS_HEADER 结构
描述 DDS 文件头。
语法
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;
成员
-
dwSize
-
类型: DWORD
-
结构的大小。 此成员必须设置为 124。
-
dwFlags
-
类型: DWORD
-
用于指示哪些成员包含有效数据的标志。
标志 描述 值 DDSD_CAPS 每个 .dds 文件中都是必需的。 0x1 DDSD_HEIGHT 每个 .dds 文件中都是必需的。 0x2 DDSD_WIDTH 每个 .dds 文件中都是必需的。 0x4 DDSD_PITCH 为未压缩的纹理提供俯仰时是必需的。 0x8 DDSD_PIXELFORMAT 每个 .dds 文件中都是必需的。 0x1000 DDSD_MIPMAPCOUNT 在被误贴的纹理中是必需的。 0x20000 DDSD_LINEARSIZE 为压缩纹理提供间距时必需。 0x80000 DDSD_DEPTH 深度纹理中必需。 0x800000 注意
编写 .dds 文件时,应设置DDSD_CAPS和DDSD_PIXELFORMAT标志,对于被误用的纹理,还应设置DDSD_MIPMAPCOUNT标志。 但是,在读取 .dds 文件时,不应依赖于设置DDSD_CAPS、DDSD_PIXELFORMAT和DDSD_MIPMAPCOUNT标志,因为此类文件的某些编写者可能不会设置这些标志。
在 Dds.h 中定义的DDS_HEADER_FLAGS_TEXTURE标志是DDSD_CAPS、DDSD_HEIGHT、DDSD_WIDTH和DDSD_PIXELFORMAT标志的按位 OR 组合。
在 Dds.h 中定义的 DDS_HEADER_FLAGS_MIPMAP 标志等于 DDSD_MIPMAPCOUNT 标志。
在 Dds.h 中定义的 DDS_HEADER_FLAGS_VOLUME 标志等于 DDSD_DEPTH 标志。
在 Dds.h 中定义的 DDS_HEADER_FLAGS_PITCH 标志等于 DDSD_PITCH 标志。
在 Dds.h 中定义的 DDS_HEADER_FLAGS_LINEARSIZE 标志等于 DDSD_LINEARSIZE 标志。
-
dwHeight
-
类型: DWORD
-
图面高度 (以像素) 为单位。
-
dwWidth
-
类型: DWORD
-
图面宽度 (以像素) 为单位。
-
dwPitchOrLinearSize
-
类型: DWORD
-
未压缩纹理中每个扫描行的间距或字节数;压缩纹理的顶级纹理中的字节总数。 有关如何计算间距的信息,请参阅 DDS 编程指南的 DDS 文件布局部分。
-
dwDepth
-
类型: DWORD
-
卷纹理的深度 () 像素,否则未使用。
-
dwMipMapCount
-
类型: DWORD
-
mipmap 级别的数目,否则未使用。
-
dwReserved1[11]
-
类型: DWORD
-
未使用。
-
ddspf
-
类型: DDS_PIXELFORMAT
-
像素格式 (DDS_PIXELFORMAT) 。
-
dwCaps
-
类型: DWORD
-
指定存储的图面的复杂性。
标志 描述 值 DDSCAPS_COMPLEX 选;必须在包含多个图面的任何文件上使用, (mipmap、三次方环境贴图或 mipmapped 体积纹理) 。 0x8 DDSCAPS_MIPMAP 选;应用于 mipmap。 0x400000 DDSCAPS_TEXTURE 必须 0x1000 注意
编写 .dds 文件时,应设置DDSCAPS_TEXTURE标志,对于多个图面,还应设置DDSCAPS_COMPLEX标志。 但是,在读取 .dds 文件时,不应依赖于设置DDSCAPS_TEXTURE和DDSCAPS_COMPLEX标志,因为此类文件的某些编写者可能不会设置这些标志。
DDS_SURFACE_FLAGS_MIPMAP标志(在 Dds.h 中定义)是DDSCAPS_COMPLEX和DDSCAPS_MIPMAP标志的按位 OR 组合。
在 Dds.h 中定义的 DDS_SURFACE_FLAGS_TEXTURE 标志等于 DDSCAPS_TEXTURE 标志。
在 Dds.h 中定义的 DDS_SURFACE_FLAGS_CUBEMAP 标志等于 DDSCAPS_COMPLEX 标志。
-
dwCaps2
-
类型: DWORD
-
有关存储的图面的其他详细信息。
标志 描述 值 DDSCAPS2_CUBEMAP 对于多维数据集映射是必需的。 0x200 DDSCAPS2_CUBEMAP_POSITIVEX 当这些图面存储在立方体映射中时是必需的。 0x400 DDSCAPS2_CUBEMAP_NEGATIVEX 当这些图面存储在立方体映射中时是必需的。 0x800 DDSCAPS2_CUBEMAP_POSITIVEY 当这些图面存储在立方体映射中时是必需的。 0x1000 DDSCAPS2_CUBEMAP_NEGATIVEY 当这些图面存储在立方体映射中时是必需的。 0x2000 DDSCAPS2_CUBEMAP_POSITIVEZ 当这些图面存储在立方体映射中时是必需的。 0x4000 DDSCAPS2_CUBEMAP_NEGATIVEZ 当这些图面存储在立方体映射中时是必需的。 0x8000 DDSCAPS2_VOLUME 对于体积纹理是必需的。 0x200000 在 Dds.h 中定义的DDS_CUBEMAP_POSITIVEX标志是DDSCAPS2_CUBEMAP和DDSCAPS2_CUBEMAP_POSITIVEX标志的按位 OR 组合。
在 Dds.h 中定义的DDS_CUBEMAP_NEGATIVEX标志是DDSCAPS2_CUBEMAP和DDSCAPS2_CUBEMAP_NEGATIVEX标志的按位 OR 组合。
在 Dds.h 中定义的DDS_CUBEMAP_POSITIVEY标志是DDSCAPS2_CUBEMAP标志和DDSCAPS2_CUBEMAP_POSITIVEY标志的按位 OR 组合。
在 Dds.h 中定义的DDS_CUBEMAP_NEGATIVEY标志是DDSCAPS2_CUBEMAP和DDSCAPS2_CUBEMAP_NEGATIVEY标志的按位 OR 组合。
在 Dds.h 中定义的DDS_CUBEMAP_POSITIVEZ标志是DDSCAPS2_CUBEMAP和DDSCAPS2_CUBEMAP_POSITIVEZ标志的按位 OR 组合。
DDS_CUBEMAP_NEGATIVEZ标志(在 Dds.h 中定义)是DDSCAPS2_CUBEMAP和DDSCAPS2_CUBEMAP_NEGATIVEZ标志的按位 OR 组合。
在 Dds.h 中定义的DDS_CUBEMAP_ALLFACES标志是DDS_CUBEMAP_POSITIVEX、DDS_CUBEMAP_NEGATIVEX、DDS_CUBEMAP_POSITIVEY、DDS_CUBEMAP_NEGATIVEY、DDS_CUBEMAP_POSITIVEZ和DDSCAPS2_CUBEMAP_NEGATIVEZ标志的按位 OR 组合。
在 Dds.h 中定义的DDS_FLAGS_VOLUME标志等于 DDSCAPS2_VOLUME 标志。
注意
尽管 Direct3D 9 支持部分多维数据集映射,但 Direct3D 10、10.1 和 11 要求定义所有六个多维数据集映射面, (即,必须设置DDS_CUBEMAP_ALLFACES) 。
-
dwCaps3
-
类型: DWORD
-
未使用。
-
dwCaps4
-
类型: DWORD
-
未使用。
-
dwReserved2
-
类型: DWORD
-
未使用。
注解
在 dwFlags 中包含包含有效数据的结构成员的标志。
将此结构与 DDS_HEADER_DXT10 结合使用,将资源数组存储在 DDS 文件中。 有关详细信息,请参阅 纹理数组。
DDS_HEADER 与没有 DirectDraw 依赖项的 DirectDraw DDSURFACEDESC2 结构相同。
要求
要求 | 值 |
---|---|
标头 |
|