DXGK_GDIARG_BITBLT structure (d3dkmddi.h)

La structure DXGK_GDIARG_BITBLT décrit les caractéristiques d’un transfert de bloc de bits (bitblt) avec accélération matérielle GDI sans étirement.

Syntaxe

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;

Membres

[in] SrcRect

Structure RECT qui définit la zone rectangulaire à copier. Ce rectangle est spécifié dans le système de coordonnées de la surface source et est défini par deux points : en haut à gauche et en bas à droite. Les deux points qui définissent le rectangle sont toujours bien ordonnés.

Le rectangle source peut dépasser les limites de la surface source.

Ce rectangle est mappé au rectangle de destination défini par DstRect. SrcRect est utilisé pour transformer les sous-rectangles de l’espace source vers l’espace de destination.

Pour plus d'informations, consultez la section Notes.

[in] DstRect

Structure RECT qui définit la zone rectangulaire à modifier. Ce rectangle est spécifié dans le système de coordonnées de la surface de destination et est défini par deux points : en haut à gauche et en bas à droite. Le rectangle est exclusif en bas à droite ; autrement dit, ses bords inférieur et droit ne font pas partie du transfert de bloc binaire. Les deux points qui définissent le rectangle sont toujours bien ordonnés.

Le rectangle de destination défini par DstRect peut dépasser les limites de la surface de destination, mais les sous-rectangles ne le peuvent pas. En outre, tous les sous-rectangles sont garantis pour tenir à l’intérieur de la surface de destination. Les sous-rectangles peuvent être davantage limités par un rectangle englobant plus petit que le rectangle de destination.

Pour plus d'informations, consultez la section Notes.

SrcAllocationIndex

[in] Index de l’élément dans la liste d’allocation qui spécifie l’allocation référencée par le rectangle source SrcRect .

DstAllocationIndex

[in] Index de l’élément dans la liste d’allocation qui spécifie l’allocation référencée par le rectangle de destination DstRect .

NumSubRects

[in] Nombre de sous-rectangles dans l’espace de surface de destination limité par le rectangle de destination DstRect .

pSubRects

[in] Pointeur vers les sous-rectangles dans l’espace de surface de destination qui est limité par le rectangle de destination DstRect .

Rop

[in] Valeur 8 bits qui spécifie une opération raster GDI (ROP) définie par les valeurs constantes de l’énumération DXGK_GDIROP_BITBLT .

Rop3

[in] Valeur 8 bits qui spécifie une opération de raster GDI ternaire (ROP3) qui combine un pinceau, une bitmap source et une bitmap de destination dans l’une des 256 combinaisons possibles. Ce type d’opération raster est traité uniquement si le pilote a défini le membre SupportAllBltRops dans la structure DXGK_PRESENTATIONCAPS .

SrcPitch

[in] Tangage de la surface source, en octets. Pour plus d’informations sur l’utilisation du pitch, consultez la section Remarques.

DstPitch

[in] Pitch de la surface de destination, en octets. Pour plus d’informations sur l’utilisation du pitch, consultez la section Remarques.

Remarques

Les valeurs de pitch SrcPitch et DstPitch doivent être utilisées pour déterminer les emplacements d’octets des rectangles SrcRect et DstRect , respectivement, pour les allocations de type D3DKMDT_GDISURFACETYPE suivantes :

D3DKMDT_GDISURFACE_STAGING_CPUVISIBLE

D3DKMDT_GDISURFACE_EXISTINGSYSMEM

La pitch doit être ignorée pour les autres types d’allocation.

Il est garanti que la hauteur est alignée dans le transfert de bloc de bits en fonction du membre AlignmentShift de la structure DXGK_PRESENTATIONCAPS (c’est-à-dire , DXGK_DRIVERCAPS. PresentationCaps.AlignmentShift).

Lorsqu’un rectangle est défini par deux pixels aux coordonnées (gauche, haut) et (droite, bas), l’adresse du premier pixel est la suivante :

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

L’adresse du dernier pixel du rectangle est la suivante :

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

Lorsque des sous-rectangles sont transformés en espace de surface source, le résultat est garanti à l’intérieur de la surface source. Cette transformation est définie par la formule suivante :

<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;

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7
En-tête d3dkmddi.h (include D3dkmddi.h)

Voir aussi

D3DKMDT_GDISURFACETYPE

DXGK_DRIVERCAPS

DXGK_GDIROP_BITBLT

DXGK_PRESENTATIONCAPS

RECT