Estrutura FORMATOP (d3dumddi.h)
A estrutura FORMATOP descreve um formato de superfície e operações que podem ser executadas com essa superfície.
Sintaxe
typedef struct _FORMATOP {
[in] D3DDDIFORMAT Format;
[out] UINT Operations;
[out] UINT FlipMsTypes;
[out] UINT BltMsTypes;
[out] UINT PrivateFormatBitCount;
} FORMATOP;
Membros
[in] Format
O valor do tipo D3DDDIFORMAT que indica o formato de pixel da superfície.
[out] Operations
Um OR bit a bit válido dos sinalizadores a seguir que indicam as operações que podem ser executadas em superfícies com o formato de pixel especificado no membro Format . Alguns dos sinalizadores a seguir implicam que outros sinalizadores devem ser usados. Se um driver definir um sinalizador que implica outros sinalizadores, o driver não será necessário para definir os sinalizadores implícitos e o runtime do Direct3D determinará o uso dos sinalizadores implícitos.
FORMATOP_TEXTURE (0x00000001L)
Superfícies do formato de pixel especificado podem ser usadas como texturas mapeadas por MIP.
FORMATOP_VOLUMETEXTURE (0x00000002L)
Superfícies desse formato podem ser usadas como texturas de volume. Observe que esse sinalizador é independente de FORMATOP_TEXTURE. Portanto, um formato de pixel pode ser usado para texturas de volume e não para texturas convencionais mapeadas por MIP.
FORMATOP_CUBETEXTURE (0x00000004L)
Superfícies desse formato podem ser usadas como texturas de mapa de ambiente cúbico. Observe que esse sinalizador é independente de FORMATOP_TEXTURE. Portanto, um formato de pixel pode ser usado para texturas de mapa de ambiente cúbico e não para texturas convencionais mapeadas por MIP.
FORMATOP_OFFSCREEN_RENDERTARGET (0x00000008L)
As superfícies desse formato podem ser usadas como destinos de renderização fora da tela, independentemente do formato de pixel do modo de exibição, se o formato de pixel do modo de exibição atual tiver sido relatado com FORMATOP_DISPLAYMODE e FORMATOP_3DACCELERATION. Se o formato de pixel do modo de exibição atual não tiver esses sinalizadores definidos, nenhuma aceleração 3D estará disponível nesse modo, mesmo que o destino de renderização esteja fora da tela. O sinalizador FORMATOP_OFFSCREEN_RENDERTARGET pode ser combinado com FORMATOP_TEXTURE para indicar que o dispositivo pode renderizar em texturas do formato de pixel especificado.
O sinalizador FORMATOP_OFFSCREEN_RENDERTARGET também implica os sinalizadores FORMATOP_SAME_FORMAT_RENDERTARGET e FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET.
FORMATOP_SAME_FORMAT_RENDERTARGET (0x00000010L)
Superfícies desse formato podem ser usadas como destinos de renderização, mas somente quando o formato de pixel da superfície corresponde ao formato de pixel do modo de exibição atual. Esse sinalizador não se aplica apenas a destinos de renderização fora da tela, mas pode ser especificado nos formatos de pixel dos modos de exibição para indicar a capacidade de destino de renderização. Esse sinalizador pode ser combinado com FORMATOP_TEXTURE para indicar que o dispositivo pode renderizar em texturas do formato de pixel especificado.
O sinalizador FORMATOP_SAME_FORMAT_RENDERTARGET também implica o sinalizador FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET.
FORMATOP_ZSTENCIL (0x00000040L)
Superfícies desse formato podem ser usadas como buffers Z/estêncil, mas somente se a profundidade da superfície Z/estêncil corresponder à profundidade de cor do destino de renderização ao qual o buffer de profundidade está anexado. Use o passo a passo do pixel ao decidir uma correspondência entre Z/estêncil e profundidade do buffer de cores.
FORMATOP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH (0x00000080L)
Superfícies desse formato podem ser usadas como buffers Z/estêncil, independentemente da profundidade de cor do destino de renderização ao qual a superfície está anexada.
O sinalizador FORMATOP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH também implica o sinalizador FORMATOP_ZSTENCIL.
FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET (0x00000100L)
Superfícies desse formato podem ser usadas como destinos de renderização se o modo de exibição atual for a mesma profundidade e o canal alfa for ignorado. Por exemplo, se o dispositivo puder renderizar para A8R8G8B8 quando o modo de exibição for X8R8G8B8, a entrada de lista de operações de formato para A8R8G8B8 deverá ter esse sinalizador definido.
FORMATOP_DISPLAYMODE (0x00000400L)
Um modo de exibição com esse formato de pixel compatível com o modelo de driver (incluindo Flip). Esse sinalizador não deve ser definido em formatos alfa.
FORMATOP_3DACCELERATION (0x00000800L)
O acelerador de gráficos pode dar suporte a algum nível de aceleração do Microsoft Direct3D quando em um modo de exibição com esse formato de pixel, e o driver pode criar um contexto nesse modo (para algum formato de destino de renderização). Esse sinalizador só pode ser usado ao relatar formatos de modo de exibição (especificando o FORMATOP_DISPLAYMODE). Esse sinalizador não deve ser usado para relatar formatos de destinos de renderização fora da tela.
FORMATOP_PIXELSIZE (0x00001000L)
O driver preencheu os bits por pixel para o formato no membro PrivateFormatBitCount .
Se o driver exigir que superfícies e texturas gerenciadas usem um formato privado (um formato que pode ser processado pelo driver, mas não nativamente pelo runtime do Direct3D), o driver deve especificar FORMATOP_PIXELSIZE e o tamanho do pixel em PrivateFormatBitCount.
FORMATOP_CONVERT_TO_ARGB (0x00002000L)
As superfícies de origem desse formato podem ser convertidas em qualquer superfície de destino com um formato de pixel RGB que tenha o sinalizador FORMATOP_MEMBEROFGROUP_ARGB especificado.
FORMATOP_OFFSCREENPLAIN (0x00004000L)
O driver pode esticar de e para e para superfícies de preenchimento de cores desse formato.
FORMATOP_SRGBREAD (0x00008000L)
Superfícies desse formato podem ser lidas de como texturas formatadas em sRGB (ou seja, o sampler lineariza os dados pesquisados).
FORMATOP_BUMPMAP (0x00010000L)
Superfícies desse formato podem ser usadas como texturas de mapa de ambiente de colisão. Observe que esse sinalizador é independente de FORMATOP_TEXTURE. Portanto, um formato de pixel pode ser usado para texturas de mapa de ambiente de colisão e não para texturas convencionais mapeadas por MIP.
FORMATOP_DMAP (0x00020000L)
O amostrador de mapa de deslocamento pode amostrar superfícies desse formato.
FORMATOP_NOFILTER (0x00040000L)
Superfícies desse formato não podem ser usadas com filtragem de textura.
FORMATOP_MEMBEROFGROUP_ARGB (0x00080000L)
As superfícies de destino desse formato podem ser convertidas de qualquer superfície de origem com um formato de pixel que tenha o sinalizador FORMATOP_CONVERT_TO_ARGB especificado. O driver pode especificar FORMATOP_MEMBEROFGROUP_ARGB apenas para superfícies ARGB com pelo menos 5 bits de informações de cor para cada canal. Ou seja, o formato D3DDDIFMT_A1R5G5B5 é válido, mas o formato D3DDDIFMT_A4R4G4B4 é inválido. Se o driver especificar FORMATOP_MEMBEROFGROUP_ARGB com um formato inválido, o runtime do Direct3D impedirá o carregamento do HAL do Direct3D. Observe que, embora esse sinalizador indique formatos ARGB, o runtime também permite que o driver especifique superfícies com formatos XRGB (por exemplo, D3DDDIFMT_X1R5G5B5).
FORMATOP_SRGBWRITE (0x00100000L)
As superfícies desse formato podem ser gravadas como destinos formatados em sRGB (ou seja, o pipe de pixel delinea dados na saída para esse formato).
FORMATOP_NOALPHABLEND (0x00200000L)
Superfícies desse formato não podem ser usadas com mesclagem alfa.
FORMATOP_AUTOGENMIPMAP (0x00400000L)
Os subnível de texturas mapeadas por MIP com esse formato podem ser gerados automaticamente. Para que o driver receba chamadas para sua função GenerateMipSubLevels , esse sinalizador deve ser exposto.
FORMATOP_VERTEXTEXTURE (0x00800000L)
Um amostrador de textura de vértice pode usar superfícies desse formato. Ou seja, somente superfícies desse formato podem ser usadas como texturas de vértice.
FORMATOP_NOTEXCOORDWRAPNORMIP (0x01000000L)
Superfícies desse formato só podem ser usadas condicionalmente para mapeamento de texturas 2D com dimensões que não são potências de 2. Para obter mais informações, consulte as definições de D3DPTEXTURECAPS_POW2 e D3DPTEXTURECAPS_NONPOW2CONDITIONAL na página de referência do D3DPRIMCAPS .
FORMATOP_PLANAR (0x02000000L)
As superfícies desse formato são planar versus empacotadas. O runtime do Direct3D deverá alocar um buffer se ele chamar a função Lock do driver de exibição do modo de usuário em uma superfície com um formato planar enquanto a superfície for perdida e o cálculo típico da altura de tempos multiplicados de tom não for possível. A maioria dos formatos são empacotados, exceto aqueles que a Aceleração de Vídeo do Microsoft DirectX usa (por exemplo, formatos YUV).
FORMATOP_OVERLAY (0x04000000L)
Superfícies desse formato são usadas para operações de sobreposição.
FORMATOP_CAPTURE (0x08000000L)
Se o membro VideoEncoder da estrutura D3DDDI_RESOURCEFLAGS2 estiver definido, superfícies desse formato poderão ser usadas como buffers de captura.
Com suporte começando com Windows 8.
FORMATOP_VIDEO_ENCODER (0x10000000L)
Se o membro VideoEncoder da estrutura D3DDDI_RESOURCEFLAGS2 estiver definido, superfícies desse formato poderão ser usadas como recursos de entrada do codificador de vídeo.
Com suporte começando com Windows 8.
FORMATOP_MULTIPLANE_OVERLAY (0x20000000L)
As superfícies desse formato dão suporte a uma sobreposição multiplano.
Com suporte começando com Windows 8.
[out] FlipMsTypes
Uma máscara de 32 bits para amostragem múltipla em tela inteira.
[out] BltMsTypes
Uma máscara de 32 bits para amostragem múltipla em janelas.
[out] PrivateFormatBitCount
Os bits por pixel de um formato de pixel que é privado para o driver (ou seja, não um dos formatos de pixel padrão definidos pelo tipo de enumeração D3DDDIFORMAT ).
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows. |
Cabeçalho | d3dumddi.h (inclua D3dumddi.h) |