Поделиться через


структура 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

Флаги, указывающие, какие элементы содержат допустимые данные.

Flag Описание Значение
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_HEADER_FLAGS_TEXTURE, определенный в Dds.h, представляет собой побитовое или сочетание флагов DDSD_CAPS, DDSD_HEIGHT, DDSD_WIDTH и DDSD_PIXELFORMAT.

Флаг DDS_HEADER_FLAGS_MIPMAP, определенный в Dds.h, равен флагу DDSD_MIPMAPCOUNT.

Флаг DDS_HEADER_FLAGS_VOLUME, определенный в Dds.h, равен флагу DDSD_DEPTH.

Флаг DDS_HEADER_FLAGS_PITCH, определенный в Dds.h, равен флагу DDSD_PITCH.

Флаг DDS_HEADER_FLAGS_LINEARSIZE, определенный в Dds.h, равен флагу DDSD_LINEARSIZE.

dwHeight

Тип: DWORD

Высота поверхности (в пикселях).

dwWidth

Тип: DWORD

Ширина поверхности (в пикселях).

dwPitchOrLinearSize

Тип: DWORD

Шаг или количество байтов на строку сканирования в несжатой текстуре; общее количество байтов в текстуре верхнего уровня для сжатой текстуры. Сведения о том, как вычислить тон, см. в разделе Макет файла DDS руководства по программированию для DDS.

dwDepth

Тип: DWORD

Глубина текстуры тома (в пикселях), в противном случае не используется.

dwMipMapCount

Тип: DWORD

Количество уровней MIP-карты, в противном случае не используется.

dwReserved1[11]

Тип: DWORD

Не используется.

ddspf

Тип: DDS_PIXELFORMAT

Формат пикселей (см . DDS_PIXELFORMAT).

dwCaps

Тип: DWORD

Указывает сложность хранимых поверхностей.

Flag Описание Значение
DDSCAPS_COMPLEX Дополнительные; должен использоваться для любого файла, содержащего несколько поверхностей (MIP-карта, кубическая карта среды или текстура тома mipmapped). 0x8
DDSCAPS_MIPMAP Дополнительные; должен использоваться для MIP-карты. 0x400000
DDSCAPS_TEXTURE Обязательно 0x1000

Примечание

При записи DDS-файлов следует установить флаг DDSCAPS_TEXTURE, а для нескольких поверхностей — флаг DDSCAPS_COMPLEX. Однако при чтении DDS-файла не следует полагаться на DDSCAPS_TEXTURE и DDSCAPS_COMPLEX флаги, так как некоторые записи такого файла могут не устанавливать эти флаги.

Флаг DDS_SURFACE_FLAGS_MIPMAP, определенный в Dds.h, представляет собой побитовое или сочетание флагов DDSCAPS_COMPLEX и DDSCAPS_MIPMAP.

Флаг DDS_SURFACE_FLAGS_TEXTURE, определенный в Dds.h, равен флагу DDSCAPS_TEXTURE.

Флаг DDS_SURFACE_FLAGS_CUBEMAP, определенный в Dds.h, равен флагу DDSCAPS_COMPLEX.

dwCaps2

Тип: DWORD

Дополнительные сведения о хранящихся поверхностях.

Flag Описание Значение
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_CUBEMAP_POSITIVEX, определенный в Dds.h, представляет собой побитовое или сочетание флагов DDSCAPS2_CUBEMAP и DDSCAPS2_CUBEMAP_POSITIVEX.

Флаг DDS_CUBEMAP_NEGATIVEX, определенный в Dds.h, представляет собой побитовое или сочетание флагов DDSCAPS2_CUBEMAP и DDSCAPS2_CUBEMAP_NEGATIVEX.

Флаг DDS_CUBEMAP_POSITIVEY, определенный в Dds.h, представляет собой побитовое или сочетание флагов DDSCAPS2_CUBEMAP и DDSCAPS2_CUBEMAP_POSITIVEY.

Флаг DDS_CUBEMAP_NEGATIVEY, определенный в Dds.h, представляет собой побитовое или сочетание флагов DDSCAPS2_CUBEMAP и DDSCAPS2_CUBEMAP_NEGATIVEY.

Флаг DDS_CUBEMAP_POSITIVEZ, определенный в Dds.h, представляет собой побитовое или сочетание флагов DDSCAPS2_CUBEMAP и DDSCAPS2_CUBEMAP_POSITIVEZ.

Флаг DDS_CUBEMAP_NEGATIVEZ, определенный в Dds.h, представляет собой побитовое или сочетание флагов DDSCAPS2_CUBEMAP и DDSCAPS2_CUBEMAP_NEGATIVEZ.

Флаг DDS_CUBEMAP_ALLFACES, определенный в Dds.h, представляет собой побитовое или сочетание флагов DDS_CUBEMAP_POSITIVEX, DDS_CUBEMAP_NEGATIVEX, DDS_CUBEMAP_POSITIVEY, DDS_CUBEMAP_NEGATIVEY, DDS_CUBEMAP_POSITIVEZ и DDSCAPS2_CUBEMAP_NEGATIVEZ.

Флаг DDS_FLAGS_VOLUME, определенный в Dds.h, равен флагу 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 DDSURFACEDESC2 без зависимостей DirectDraw.

Требования

Требование Значение
Заголовок
Dds.h

См. также раздел

Справочник по DDS