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 Mipmapped 紋理中的必要專案。 0x20000 DDSD_LINEARSIZE 針對壓縮紋理提供音調時,為必要專案。 0x80000 DDSD_DEPTH 深度紋理中的必要專案。 0x800000 注意
當您撰寫 .dds 檔案時,應該設定DDSD_CAPS和DDSD_PIXELFORMAT旗標,而針對 mipmapped 紋理,您也應該設定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.h 中定義的 DDS_SURFACE_FLAGS_MIPMAP 旗標是 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 Cube 對應的必要專案。 0x200 DDSCAPS2_CUBEMAP_POSITIVEX 當這些表面儲存在 Cube 對應中時需要。 0x400 DDSCAPS2_CUBEMAP_NEGATIVEX 當這些表面儲存在 Cube 對應中時需要。 0x800 DDSCAPS2_CUBEMAP_POSITIVEY 當這些表面儲存在 Cube 對應中時需要。 0x1000 DDSCAPS2_CUBEMAP_NEGATIVEY 當這些表面儲存在 Cube 對應中時需要。 0x2000 DDSCAPS2_CUBEMAP_POSITIVEZ 當這些表面儲存在 Cube 對應中時需要。 0x4000 DDSCAPS2_CUBEMAP_NEGATIVEZ 當這些表面儲存在 Cube 對應中時需要。 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.h 中定義的DDS_CUBEMAP_NEGATIVEZ旗標是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 支援部分 Cube 對應,但 Direct3D 10、10.1 和 11 需要定義所有六個 Cube 對應臉部 (,您必須設定DDS_CUBEMAP_ALLFACES) 。
-
dwCaps3
-
類型: DWORD
-
未使用的。
-
dwCaps4
-
類型: DWORD
-
未使用的。
-
dwReserved2
-
類型: DWORD
-
未使用的。
備註
在 dwFlags 中包含包含有效資料之結構成員的旗標。
將此結構與 DDS_HEADER_DXT10 搭配使用,將資源陣列儲存在 DDS 檔案中。 如需詳細資訊,請參閱 紋理陣列。
DDS_HEADER 與沒有 DirectDraw 相依性的 DirectDraw DDSURFACEDESC2 結構相同。
規格需求
需求 | 值 |
---|---|
標頭 |
|