DDS_PIXELFORMAT 结构

Surface 像素格式。

语法

struct DDS_PIXELFORMAT {
  DWORD dwSize;
  DWORD dwFlags;
  DWORD dwFourCC;
  DWORD dwRGBBitCount;
  DWORD dwRBitMask;
  DWORD dwGBitMask;
  DWORD dwBBitMask;
  DWORD dwABitMask;
};

成员

dwSize

类型: DWORD

结构大小;设置为 32 (字节) 。

dwFlags

类型: DWORD

指示图面中数据类型的值。

标志 描述
DDPF_ALPHAPIXELS 纹理包含 alpha 数据; dwRGBAlphaBitMask 包含有效数据。 0x1
DDPF_ALPHA 在某些较旧的 DDS 文件中用于 alpha 通道的未压缩数据 (dwRGBBitCount 包含 alpha 通道位计数;dwABitMask 包含有效的数据) 0x2
DDPF_FOURCC 纹理包含压缩的 RGB 数据; dwFourCC 包含有效数据。 0x4
DDPF_RGB 纹理包含未压缩的 RGB 数据; dwRGBBitCount 和 rgb 掩码 (dwRBitMaskdwGBitMaskdwBBitMask) 包含有效数据。 0x40
DDPF_YUV 在一些较旧的 DDS 文件中用于 YUV 未压缩数据 (dwRGBBitCount 包含 YUV 位计数;dwRBitMask 包含 Y 掩码,dwGBitMask 包含 U 掩码,dwBBitMask 包含 V 掩码) 0x200
DDPF_LUMINANCE 用于某些较旧的 DDS 文件,用于单通道颜色未压缩数据 (dwRGBBitCount 包含亮度通道位计数;dwRBitMask 包含通道掩码) 。 可与两个通道 DDS 文件的DDPF_ALPHAPIXELS结合使用。 0x20000

dwFourCC

类型: DWORD

用于指定压缩格式或自定义格式的四个字符代码。 可能的值包括: DXT1DXT2DXT3DXT4DXT5。 DX10 的 FourCC 指示 DDS_HEADER_DXT10 扩展标头的前提,该结构的 dxgiFormat 成员指示真实格式。 使用四个字符的代码时,dwFlags 必须包含 DDPF_FOURCC

dwRGBBitCount

类型: DWORD

RGB (可能包含 alpha) 格式的位数。 当 dwFlags 包括 DDPF_RGBDDPF_LUMINANCEDDPF_YUV时有效。

dwRBitMask

类型: DWORD

用于读取颜色数据的红色 (或亮度或 Y) 掩码。 例如,给定 A8R8G8B8 格式,红色掩码将0x00ff0000。

dwGBitMask

类型: DWORD

用于读取颜色数据的绿色 (或 U) 掩码。 例如,给定 A8R8G8B8 格式,绿色掩码将0x0000ff00。

dwBBitMask

类型: DWORD

用于读取颜色数据的蓝色 (或 V) 掩码。 例如,给定 A8R8G8B8 格式,蓝色掩码将0x000000ff。

dwABitMask

类型: DWORD

用于读取 alpha 数据的 Alpha 掩码。 dwFlags 必须包含 DDPF_ALPHAPIXELSDDPF_ALPHA。 例如,给定 A8R8G8B8 格式,将0xff000000 alpha 掩码。

备注

若要存储 DXGI 格式(如浮点数据),请使用DDPF_FOURCC的 dwFlags 并将 dwFourCC 设置为“D”、“X”、“1”、“0”。 使用 DDS_HEADER_DXT10 扩展标头将 DXGI 格式存储在 dxgiFormat 成员中。

请注意,存在 DDS 文件的非标准变体, 其中 dwFlags 具有DDPF_FOURCC, dwFourCC 值直接设置为 D3DFORMAT 或DXGI_FORMAT枚举值。 使用此非标准方案无法消除 D3DFORMAT 与DXGI_FORMAT值的歧义,因此建议改用 DX10 扩展标头。

要求

要求
标头
Dds.h

另请参阅

DDS 参考