Spécification des opérations de rendu Hardware-Accelerated GDI
Lorsque la fonction DxgkDdiRenderKm est appelée, le système d’exploitation spécifie le type d’opération de rendu avec accélération matérielle GDI à effectuer via le paramètre pRenderKmArgs . Le pilote de port d’affichage du sous-système du noyau graphique DirectX (Dxgkrnl.sys) définit le membre pRenderKmArgs-pCommand> pour qu’il pointe vers une mémoire tampon de commande qui contient un tableau de structures DXGK_RENDERKM_COMMAND de taille variable. Il définit également le membre pRenderKmArgs-pCommandLength> sur la taille de la mémoire tampon de commande, en octets.
Le pilote doit traduire l’entrée DXGK_RENDERKM_COMMAND mémoire tampon de commandes en commandes de mémoire tampon DMA et générer la liste des emplacements des correctifs.
DXGK_RENDERKM_COMMAND contient des membres qui spécifient les caractéristiques des opérations de rendu avec accélération matérielle GDI, comme décrit dans le tableau suivant.
Opération de rendu | DXGK_RENDERKM_COMMAND Membre | Structure DXGK_GDIARG_XXX correspondante | Valeur de DXGK_RENDERKM_OPERATION correspondante |
---|---|---|---|
mélange alpha |
AlphaBlend |
DXGK_GDIOP_ALPHABLEND = 3 |
|
transfert de bloc de bits sans étirement |
BitBlt |
DXGK_GDIOP_BITBLT = 1 |
|
ClearType et mélange de pixels de texte anticrénelé |
ClearTypeBlend |
DXGK_GDIOP_CLEARTYPEBLEND = 7 |
|
remplissage de couleur |
ColorFill |
DXGK_GDIOP_COLORFILL = 2 |
|
transfert de bloc de bits étendu |
StretchBlt |
DXGK_GDIOP_STRETCHBLT = 4 |
|
transfert de bloc de bits avec transparence |
TransparentBlt |
DXGK_GDIOP_TRANSPARENTBLT = 6 |
Le système d’exploitation utilise le membre OpCode de DXGK_RENDERKM_COMMAND pour indiquer l’opération de rendu gDI à accélération matérielle spécifique que le pilote de miniport d’affichage doit traiter. Le membre OpCode est de type DXGK_RENDERKM_OPERATION, avec des valeurs affichées dans le tableau.
Le système d’exploitation fournit également la valeur appropriée du membre DXGK_RENDERKM_COMMAND CommandSize , qui spécifie la taille de la commande de rendu actuelle, en octets, y compris la valeur de OpCode et le nombre de sous-rectangles dans la commande.
Des informations supplémentaires sur la capacité de l’adaptateur d’affichage à effectuer un transfert de bloc de bits avec transparence sont fournies dans la structure D3DKM_TRANSPARENTBLTFLAGS contenue dans le membre DXGK_GDIARG_TRANSPARENTBLT-Flags>.