estrutura DXGK_GDIARG_BITBLT (d3dkmddi.h)

A estrutura DXGK_GDIARG_BITBLT descreve as características de uma transferência de bloco de bits acelerada por hardware GDI (bitblt) sem alongamento.

Sintaxe

typedef struct _DXGK_GDIARG_BITBLT {
  [in] RECT SrcRect;
  [in] RECT DstRect;
       UINT SrcAllocationIndex;
       UINT DstAllocationIndex;
       UINT NumSubRects;
       RECT *pSubRects;
       WORD Rop;
       WORD Rop3;
       UINT SrcPitch;
       UINT DstPitch;
} DXGK_GDIARG_BITBLT;

Membros

[in] SrcRect

Uma estrutura RECT que define a área retangular a ser copiada. Esse retângulo é especificado no sistema de coordenadas da superfície de origem e é definido por dois pontos: superior esquerdo e inferior direito. Os dois pontos que definem o retângulo são sempre bem ordenados.

O retângulo de origem pode exceder os limites da superfície de origem.

Esse retângulo é mapeado para o retângulo de destino definido por DstRect. O SrcRect é usado para transformar sub-retângulos do espaço de origem para o espaço de destino.

Para obter mais informações, consulte a seção Comentários.

[in] DstRect

Uma estrutura RECT que define a área retangular a ser modificada. Esse retângulo é especificado no sistema de coordenadas da superfície de destino e é definido por dois pontos: superior esquerdo e inferior direito. O retângulo é exclusivo para o canto inferior direito; ou seja, suas bordas inferior e direita não fazem parte da transferência de bloco de bits. Os dois pontos que definem o retângulo são sempre bem ordenados.

O retângulo de destino definido por DstRect pode exceder os limites da superfície de destino, mas os sub-retângulos não podem. Além disso, todos os sub-retângulos têm a garantia de caber dentro da superfície de destino. Os sub-retângulos podem ser restringidos ainda mais por um retângulo delimitador menor que o retângulo de destino.

Para obter mais informações, consulte a seção Comentários.

SrcAllocationIndex

[in] Um índice do elemento na lista de alocação que especifica a alocação referenciada pelo retângulo de origem SrcRect .

DstAllocationIndex

[in] Um índice do elemento na lista de alocação que especifica a alocação referenciada pelo retângulo de destino DstRect .

NumSubRects

[in] O número de sub-retângulos no espaço de superfície de destino delimitado pelo retângulo de destino DstRect .

pSubRects

[in] Um ponteiro para os sub-retângulos no espaço de superfície de destino delimitado pelo retângulo de destino DstRect .

Rop

[in] Um valor de 8 bits que especifica uma ROP (operação de raster GDI) definida pelos valores constantes da enumeração DXGK_GDIROP_BITBLT .

Rop3

[in] Um valor de 8 bits que especifica uma operação de raster GDI ternário (ROP3) que combina um pincel, um bitmap de origem e um bitmap de destino em uma das 256 combinações possíveis. Esse tipo de operação de raster será processado somente se o driver tiver definido o membro SupportAllBltRops na estrutura DXGK_PRESENTATIONCAPS .

SrcPitch

[in] O tom da superfície de origem, em bytes. Para obter mais informações sobre como usar o pitch, consulte a seção Comentários.

DstPitch

[in] O tom da superfície de destino, em bytes. Para obter mais informações sobre como usar o pitch, consulte a seção Comentários.

Comentários

Os valores de pitch SrcPitch e DstPitch devem ser usados para determinar os locais de bytes dos retângulos SrcRect e DstRect , respectivamente, para as seguintes alocações do tipo D3DKMDT_GDISURFACETYPE:

D3DKMDT_GDISURFACE_STAGING_CPUVISIBLE

D3DKMDT_GDISURFACE_EXISTINGSYSMEM

O pitch deve ser ignorado para outros tipos de alocação.

É garantido que o pitch esteja alinhado na transferência de bloco de bits de acordo com o membro AlignmentShift da estrutura de DXGK_PRESENTATIONCAPS (ou seja, DXGK_DRIVERCAPS. PresentationCaps.AlignmentShift).

Quando um retângulo é definido por dois pixels nas coordenadas (esquerda, superior) e (direita, inferior), o endereço do primeiro pixel é:

Allocation.BaseAddress + (top * Pitch) + (left * 4)

O endereço do último pixel do retângulo é:

Allocation.BaseAddress + ((bottom - 1) * Pitch) + ((right - 1) * 4)

Quando sub-retângulos são transformados no espaço da superfície de origem, o resultado é garantido estar dentro da superfície de origem. Essa transformação é definida pela seguinte fórmula:

<SrcSubRect.left = SubRect.left - DstRect.left + SrcRect.left;
SrcSubRect.right = SubRect.right - DstRect.left + SrcRect.left;
SrcSubRect.top = SubRect.top - DstRect.top + SrcRect.top;
SrcSubRect.bottom = SubRect.bottom - DstRect.top + SrcRect.top;

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7
Cabeçalho d3dkmddi.h (inclua D3dkmddi.h)

Confira também

D3DKMDT_GDISURFACETYPE

DXGK_DRIVERCAPS

DXGK_GDIROP_BITBLT

DXGK_PRESENTATIONCAPS

RECT