Compartilhar via


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:
    1. Primeiro bitblt:
      • BeginPresentToDwm = TRUE;
      • ContinuePresentToDwm = FALSE;
      • EndPresentToDwm = FALSE;
    2. Segundo bitblt:
      • BeginPresentToDwm = FALSE;
      • ContinuePresentToDwm = FALSE;
      • EndPresentToDwm = TRUE;
  • 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:
    1. Primeiro bitblt:
      • BeginPresentToDwm = TRUE;
      • ContinuePresentToDwm = FALSE;
      • EndPresentToDwm = FALSE;
    2. Bitblts secundários e sucessivos, sem incluir o bitblt final:
      • BeginPresentToDwm = FALSE;
      • ContinuePresentToDwm = TRUE;
      • EndPresentToDwm = FALSE;
    3. Bitblt final:
      • BeginPresentToDwm = FALSE;
      • ContinuePresentToDwm = FALSE;
      • EndPresentToDwm = TRUE;

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows Vista.
Cabeçalho d3dumddi.h (inclua D3dumddi.h)

Confira também

D3DDDIARG_BLT

Liberar