estrutura DDS_HEADER

Descreve um cabeçalho de arquivo DDS.

Sintaxe

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;

Membros

dwSize

Tipo: DWORD

Tamanho da estrutura. Esse membro deve ser definido como 124.

dwFlags

Tipo: DWORD

Sinalizadores para indicar quais membros contêm dados válidos.

Sinalizador Descrição Valor
DDSD_CAPS Obrigatório em cada arquivo .dds. 0x1
DDSD_HEIGHT Obrigatório em cada arquivo .dds. 0x2
DDSD_WIDTH Obrigatório em cada arquivo .dds. 0x4
DDSD_PITCH Necessário quando o pitch é fornecido para uma textura descompactada. 0x8
DDSD_PIXELFORMAT Obrigatório em cada arquivo .dds. 0x1000
DDSD_MIPMAPCOUNT Necessário em uma textura mipmapped. 0x20000
DDSD_LINEARSIZE Necessário quando o pitch é fornecido para uma textura compactada. 0x80000
DDSD_DEPTH Necessário em uma textura de profundidade. 0x800000

Observação

Ao gravar arquivos .dds, você deve definir os sinalizadores DDSD_CAPS e DDSD_PIXELFORMAT e, para texturas mipmapped, você também deve definir o sinalizador DDSD_MIPMAPCOUNT. No entanto, ao ler um arquivo .dds, você não deve contar com os sinalizadores DDSD_CAPS, DDSD_PIXELFORMAT e DDSD_MIPMAPCOUNT que estão sendo definidos porque alguns gravadores desse arquivo podem não definir esses sinalizadores.

O sinalizador DDS_HEADER_FLAGS_TEXTURE, que é definido em Dds.h, é uma combinação bit a bit or dos sinalizadores DDSD_CAPS, DDSD_HEIGHT, DDSD_WIDTH e DDSD_PIXELFORMAT.

O sinalizador DDS_HEADER_FLAGS_MIPMAP, que é definido em Dds.h, é igual ao sinalizador DDSD_MIPMAPCOUNT.

O sinalizador DDS_HEADER_FLAGS_VOLUME, que é definido em Dds.h, é igual ao sinalizador DDSD_DEPTH.

O sinalizador DDS_HEADER_FLAGS_PITCH, que é definido em Dds.h, é igual ao sinalizador DDSD_PITCH.

O sinalizador DDS_HEADER_FLAGS_LINEARSIZE, que é definido em Dds.h, é igual ao sinalizador DDSD_LINEARSIZE.

dwHeight

Tipo: DWORD

Altura da superfície (em pixels).

Dwwidth

Tipo: DWORD

Largura da superfície (em pixels).

dwPitchOrLinearSize

Tipo: DWORD

O tom ou o número de bytes por linha de verificação em uma textura descompactada; o número total de bytes na textura de nível superior para uma textura compactada. Para obter informações sobre como calcular o pitch, consulte a seção Layout de Arquivo DDS do Guia de Programação para DDS.

dwDepth

Tipo: DWORD

Profundidade de uma textura de volume (em pixels), caso contrário, não utilizado.

dwMipMapCount

Tipo: DWORD

Número de níveis de mipmap, caso contrário, não utilizados.

dwReserved1[11]

Tipo: DWORD

Não utilizado.

ddspf

Tipo: DDS_PIXELFORMAT

O formato de pixel (consulte DDS_PIXELFORMAT).

dwCaps

Tipo: DWORD

Especifica a complexidade das superfícies armazenadas.

Sinalizador Descrição Valor
DDSCAPS_COMPLEX Opcional; deve ser usado em qualquer arquivo que contenha mais de uma superfície (um mipmap, um mapa de ambiente cúbico ou textura de volume mipmapped). 0x8
DDSCAPS_MIPMAP Opcional; deve ser usado para um mipmap. 0x400000
DDSCAPS_TEXTURE Obrigatório 0x1000

Observação

Ao gravar arquivos .dds, você deve definir o sinalizador DDSCAPS_TEXTURE e, para várias superfícies, também deve definir o sinalizador DDSCAPS_COMPLEX. No entanto, ao ler um arquivo .dds, você não deve confiar no DDSCAPS_TEXTURE e DDSCAPS_COMPLEX sinalizadores que estão sendo definidos porque alguns gravadores desse arquivo podem não definir esses sinalizadores.

O sinalizador DDS_SURFACE_FLAGS_MIPMAP, que é definido em Dds.h, é uma combinação bit a bit or dos sinalizadores DDSCAPS_COMPLEX e DDSCAPS_MIPMAP.

O sinalizador DDS_SURFACE_FLAGS_TEXTURE, que é definido em Dds.h, é igual ao sinalizador DDSCAPS_TEXTURE.

O sinalizador DDS_SURFACE_FLAGS_CUBEMAP, que é definido em Dds.h, é igual ao sinalizador DDSCAPS_COMPLEX.

dwCaps2

Tipo: DWORD

Detalhes adicionais sobre as superfícies armazenadas.

Sinalizador Descrição Valor
DDSCAPS2_CUBEMAP Necessário para um mapa de cubo. 0x200
DDSCAPS2_CUBEMAP_POSITIVEX Necessário quando essas superfícies são armazenadas em um mapa de cubo. 0x400
DDSCAPS2_CUBEMAP_NEGATIVEX Necessário quando essas superfícies são armazenadas em um mapa de cubo. 0x800
DDSCAPS2_CUBEMAP_POSITIVEY Necessário quando essas superfícies são armazenadas em um mapa de cubo. 0x1000
DDSCAPS2_CUBEMAP_NEGATIVEY Necessário quando essas superfícies são armazenadas em um mapa de cubo. 0x2000
DDSCAPS2_CUBEMAP_POSITIVEZ Necessário quando essas superfícies são armazenadas em um mapa de cubo. 0x4000
DDSCAPS2_CUBEMAP_NEGATIVEZ Necessário quando essas superfícies são armazenadas em um mapa de cubo. 0x8000
DDSCAPS2_VOLUME Necessário para uma textura de volume. 0x200000

O sinalizador DDS_CUBEMAP_POSITIVEX, que é definido em Dds.h, é uma combinação bit a bit or dos sinalizadores DDSCAPS2_CUBEMAP e DDSCAPS2_CUBEMAP_POSITIVEX.

O sinalizador DDS_CUBEMAP_NEGATIVEX, que é definido em Dds.h, é uma combinação or bit a bit dos sinalizadores DDSCAPS2_CUBEMAP e DDSCAPS2_CUBEMAP_NEGATIVEX.

O sinalizador DDS_CUBEMAP_POSITIVEY, que é definido em Dds.h, é uma combinação bit a bit or dos sinalizadores DDSCAPS2_CUBEMAP e DDSCAPS2_CUBEMAP_POSITIVEY.

O sinalizador DDS_CUBEMAP_NEGATIVEY, que é definido em Dds.h, é uma combinação bit a bit or dos sinalizadores DDSCAPS2_CUBEMAP e DDSCAPS2_CUBEMAP_NEGATIVEY.

O sinalizador DDS_CUBEMAP_POSITIVEZ, que é definido em Dds.h, é uma combinação bit a bit or dos sinalizadores DDSCAPS2_CUBEMAP e DDSCAPS2_CUBEMAP_POSITIVEZ.

O sinalizador DDS_CUBEMAP_NEGATIVEZ, que é definido em Dds.h, é uma combinação bit a bit or dos sinalizadores DDSCAPS2_CUBEMAP e DDSCAPS2_CUBEMAP_NEGATIVEZ.

O sinalizador DDS_CUBEMAP_ALLFACES, que é definido em Dds.h, é uma combinação bit a bit do DDS_CUBEMAP_POSITIVEX, DDS_CUBEMAP_NEGATIVEX, DDS_CUBEMAP_POSITIVEY, DDS_CUBEMAP_NEGATIVEY, DDS_CUBEMAP_POSITIVEZ e sinalizadores DDSCAPS2_CUBEMAP_NEGATIVEZ.

O sinalizador DDS_FLAGS_VOLUME, que é definido em Dds.h, é igual ao sinalizador DDSCAPS2_VOLUME.

Observação

Embora o Direct3D 9 dê suporte a mapas de cubo parciais, Direct3D 10, 10.1 e 11 exigem que você defina todas as seis faces de mapa de cubo (ou seja, você deve definir DDS_CUBEMAP_ALLFACES).

dwCaps3

Tipo: DWORD

Não utilizado.

dwCaps4

Tipo: DWORD

Não utilizado.

dwReserved2

Tipo: DWORD

Não utilizado.

Comentários

Inclua sinalizadores em dwFlags para os membros da estrutura que contêm dados válidos.

Use essa estrutura em combinação com um DDS_HEADER_DXT10 para armazenar uma matriz de recursos em um arquivo DDS. Para obter mais informações, consulte matrizes de textura.

DDS_HEADER é idêntico à estrutura DDSURFACEDESC2 do DirectDraw sem dependências DirectDraw.

Requisitos

Requisito Valor
parâmetro
Dds.h

Confira também

Referência para DDS