structure DXGK_GDIARG_BITBLT (d3dkmddi.h)
La structure DXGK_GDIARG_BITBLT décrit les caractéristiques d’un transfert de bloc de bits (bitblt ) à 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 : supérieur gauche et inférieur droit. Les deux points qui définissent le rectangle sont toujours bien classé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 des sous-rectangles de l’espace source vers l’espace de destination.
Pour plus d’informations, consultez la section Remarques.
[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 : supérieur gauche et inférieur droit. Le rectangle est exclusif en bas à droite ; autrement dit, ses bords inférieur et droit ne font pas partie du transfert de bloc de bits. Les deux points qui définissent le rectangle sont toujours bien classés.
Le rectangle de destination défini par DstRect peut dépasser les limites de la surface de destination, mais les sous-rectangles ne peuvent pas. En outre, tous les sous-rectangles sont garantis pour s’adapter à l’intérieur de la surface de destination. Les sous-rectangles peuvent être contraints plus loin par un rectangle englobant plus petit que le rectangle de destination.
Pour plus d’informations, consultez la section Remarques.
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 délimité par le rectangle de destination DstRect rectangle de destination.
pSubRects
[in] Pointeur vers les sous-rectangles de l’espace de la surface de destination délimité par le rectangle de destination DstRect rectangle de destination.
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 ne sera traité que si le pilote a défini le membre SupportAllBltRops dans la structure DXGK_PRESENTATIONCAPS.
SrcPitch
[in] Hauteur de l’aire source, en octets. Pour plus d’informations sur l’utilisation de l’emplacement, consultez la section Remarques.
DstPitch
[in] Hauteur de l’aire de destination, en octets. Pour plus d’informations sur l’utilisation de l’emplacement, consultez la section Remarques.
Remarques
Les valeurs de tangage SrcPitch et DstPitch doivent être utilisées pour déterminer les emplacements d’octets des SrcRect et rectangles DstRect, respectivement, pour les allocations de type D3DKMDT_GDISURFACETYPEsuivantes :
D3DKMDT_GDISURFACE_STAGING_CPUVISIBLE
D3DKMDT_GDISURFACE_EXISTINGSYSMEM
L’emplacement doit être ignoré pour d’autres types d’allocation.
La hauteur est garantie d’être alignée dans le transfert de bloc de bits conformément au membre AlignmentShift de la structure DXGK_PRESENTATIONCAPS (autrement dit, DXGK_DRIVERCAPS. PresentationCaps.AlignmentShift).
Où 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 dans 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;
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 7 |
d’en-tête | d3dkmddi.h (include D3dkmddi.h) |