estrutura D3DDDI_BLTFLAGS (d3dumddi.h)
A estrutura D3DDDI_BLTFLAGS identifica o tipo de transferência de bloco de bits (bitblt) a ser executada.
Sintaxe
typedef struct _D3DDDI_BLTFLAGS {
union {
struct {
UINT Point : 1;
UINT Linear : 1;
UINT SrcColorKey : 1;
UINT DstColorKey : 1;
UINT MirrorLeftRight : 1;
UINT MirrorUpDown : 1;
UINT LinearToSrgb : 1;
UINT Rotate : 1;
UINT BeginPresentToDwm : 1;
UINT ContinuePresentToDwm : 1;
UINT EndPresentToDwm : 1;
#if ...
UINT Reserved : 21;
UINT Discard : 1;
UINT NoOverwrite : 1;
UINT Tileable : 1;
#else
UINT Reserved : 18;
#endif
};
UINT Value;
};
} D3DDDI_BLTFLAGS;
Membros
Point
Um valor UINT que especifica se a filtragem de ponto deve ser usada na transferência de bloco de bits. Definir esse membro é equivalente a definir o primeiro bit do membro Value de 32 bits (0x00000001).
Linear
Um valor UINT que especifica se a filtragem linear deve ser usada na transferência de bloco de bits. Definir esse membro é equivalente a definir o segundo bit do membro Value de 32 bits (0x00000002).
SrcColorKey
Um valor UINT que especifica se a chave de cor de origem deve ser executada usando o valor no membro ColorKey . Ou seja, qualquer pixel na superfície de origem que corresponda à chave de cor não deve ser copiado para a superfície de destino e todos os pixels de origem que não correspondem à chave de cor devem ser copiados.
Definir esse membro é equivalente a definir o terceiro bit do membro Value de 32 bits (0x00000004).
DstColorKey
Um valor UINT que especifica se a chave de cores de destino deve ser executada usando o valor no membro ColorKey . Ou seja, qualquer pixel na superfície de destino que corresponda à chave de cor deve ser substituído pelo pixel correspondente da superfície de origem e todos os pixels de destino que não correspondem à chave de cor não devem ser substituídos.
Definir esse membro é equivalente a definir o quarto bit do membro Value de 32 bits (0x00000008).
MirrorLeftRight
Um valor UINT que especifica se o conteúdo da superfície de origem é invertido horizontalmente ao longo do eixo central no bitblt para a superfície de destino. Ou seja, o conteúdo à esquerda da superfície de origem é copiado para o lado direito da superfície de destino e vice-versa.
Definir esse membro é equivalente a definir o quinto bit do membro Value de 32 bits (0x00000010).
MirrorUpDown
Um valor UINT que especifica se o conteúdo da superfície de origem é invertido verticalmente ao longo do eixo central no bitblt para a superfície de destino. Ou seja, o conteúdo na parte superior da superfície de origem é copiado para a parte inferior da superfície de destino e vice-versa.
Definir esse membro é equivalente a definir o sexto bit do membro Value de 32 bits (0x00000020).
LinearToSrgb
Um valor UINT que especifica se a origem formatada linear em formato sRGB deve ser convertida durante a operação bitblt. O formato sRGB é corrigido por gama. Para obter mais informações sobre o formato sRGB, consulte o site sRGB .
Definir esse membro é equivalente a definir o sétimo bit do membro Value de 32 bits (0x00000040).
Rotate
Um valor UINT que especifica se a origem deve ser girada durante a operação bitblt.
Definir esse membro é equivalente a definir o oitavo bit do membro Value de 32 bits (0x00000080).
BeginPresentToDwm
Um valor UINT que especifica se o runtime do Microsoft Direct3D inicia uma operação dwm presente durante a operação bitblt. Para obter mais informações sobre BeginPresentToDwm, consulte Comentários.
Definir esse membro é equivalente a definir o nono bit do membro Value de 32 bits (0x00000100).
ContinuePresentToDwm
Um valor UINT que especifica se o runtime do Direct3D continua uma operação dwm presente durante a operação bitblt. Para obter mais informações sobre ContinuePresentToDwm, consulte Comentários.
Definir esse membro é equivalente a definir o décimo bit do membro Value de 32 bits (0x00000200).
EndPresentToDwm
Um valor UINT que especifica se o runtime do Direct3D encerra uma operação de DWM presente durante a operação bitblt. Para obter mais informações sobre EndPresentToDwm, consulte Comentários.
Definir esse membro é equivalente a definir o décimo primeiro bit do membro Value de 32 bits (0x00000400).
Reserved
Esse membro é reservado e deve ser definido como zero. Definir esse membro como zero é equivalente a definir os 21 bits restantes (0xFFFFF800) do membro Value de 32 bits como zeros.
Esse membro é reservado e deve ser definido como zero.
Definir esse membro como zero é equivalente a definir os 18 bits restantes (0xFFFFC000) do membro Value de 32 bits como zeros.
Com suporte a partir do Windows 8.
Discard
Indica que o driver de exibição do modo de usuário pode descartar o conteúdo anterior de todo o recurso. O driver pode aproveitar essa funcionalidade para otimizar o desempenho e o uso de memória.
Se esse membro não for NULL, NoOverwrite e Tileable deverão ser NULL.
Definir esse membro é equivalente a definir o décimo segundo bit (0xFFFFF800) do membro Value de 32 bits como zeros.
Com suporte a partir do Windows 8.
NoOverwrite
Indica que o chamador garante que a parte da superfície que está sendo gravada com novos dados não esteja sendo referenciada ou acessada por nenhuma operação de renderização anterior. O driver pode aproveitar essa funcionalidade para otimizar o desempenho e o uso de memória.
Se esse membro não for NULL, Discard deverá ser NULL.
Definir esse membro é equivalente a definir o décimo terceiro bit (0x00001000) do membro Value de 32 bits como zeros.
Com suporte a partir do Windows 8.
Tileable
Para a renderização adiada baseada em bloco, indica que uma operação de cópia pode operar apenas no bloco atualmente processado no recurso de origem ou destino, e a cena não precisa ser liberada em todos os blocos.
Se esse membro não for NULL, Discard deverá ser NULL.
Definir esse membro é equivalente a definir o décimo quarto bit (0x00002000) do membro Value de 32 bits como zeros.
Com suporte a partir do Windows 8.
Value
Um membro na união contida em D3DDDI_BLTFLAGS que pode conter um valor de 32 bits que identifica o tipo de bitblt a ser executado.
Comentários
Os sinalizadores de campo de bit BeginPresentToDwm, ContinuePresentToDwm e EndPresentToDwm informam ao driver de exibição do modo de usuário sobre a hora em que o runtime do Direct3D executa partes de uma operação presente do DWM. Como as operações atuais do DWM podem ocorrer em várias etapas, o runtime do Direct3D usa esses sinalizadores para marcar as etapas em uma sequência de bitblts. Por exemplo:
- Se a operação atual consistir em um bitblt, o bitblt será marcado da seguinte maneira:
- BeginPresentToDwm = TRUE;
- ContinuePresentToDwm = FALSE;
- EndPresentToDwm = TRUE;
- Se a operação atual consistir em dois bitblts, os bitblts serão marcados como mostrado em duas operações sequenciais de bitblt:
- Primeiro bitblt:
- BeginPresentToDwm = TRUE;
- ContinuePresentToDwm = FALSE;
- EndPresentToDwm = FALSE;
- Segundo bitblt:
- BeginPresentToDwm = FALSE;
- ContinuePresentToDwm = FALSE;
- EndPresentToDwm = TRUE;
- Primeiro bitblt:
- Se a operação atual consistir em três ou mais bitblts, os bitblts serão marcados conforme mostrado nas seguintes operações sequenciais de bitblt:
- Primeiro bitblt:
- BeginPresentToDwm = TRUE;
- ContinuePresentToDwm = FALSE;
- EndPresentToDwm = FALSE;
- Bitblts secundários e sucessivos, sem incluir o bitblt final:
- BeginPresentToDwm = FALSE;
- ContinuePresentToDwm = TRUE;
- EndPresentToDwm = FALSE;
- Bitblt final:
- BeginPresentToDwm = FALSE;
- ContinuePresentToDwm = FALSE;
- EndPresentToDwm = TRUE;
- Primeiro bitblt:
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível a partir do Windows Vista. |
Cabeçalho | d3dumddi.h (inclua D3dumddi.h) |