Angeben von GDI-Hardware-Accelerated Renderingvorgängen
Wenn die DxgkDdiRenderKm-Funktion aufgerufen wird, gibt das Betriebssystem den Typ des hardwarebeschleunigten GDI-Renderingvorgangs an, der über den pRenderKmArgs-Parameter ausgeführt werden soll. Der Anzeigeporttreiber des DirectX-Grafikkernsubsystems (Dxgkrnl.sys) legt fest, dass der pRenderKmArgs-pCommand-Member> auf einen Befehlspuffer verweist, der ein Array von DXGK_RENDERKM_COMMAND Strukturen mit variabler Größe enthält. Außerdem wird der pRenderKmArgs-pCommandLength-Member> auf die Größe des Befehlspuffers in Bytes festgelegt.
Der Treiber muss die Eingabe DXGK_RENDERKM_COMMAND Befehlspuffers in DMA-Pufferbefehle übersetzen und die Patchspeicherortliste erstellen.
DXGK_RENDERKM_COMMAND enthält Member, die Merkmale von hardwarebeschleunigten GDI-Renderingvorgängen angeben, wie in der folgenden Tabelle beschrieben.
Renderingvorgang | DXGK_RENDERKM_COMMAND Mitglied | Entsprechende DXGK_GDIARG_XXX-Struktur | Entsprechender DXGK_RENDERKM_OPERATION-Wert |
---|---|---|---|
Alphamischung |
AlphaBlend |
DXGK_GDIOP_ALPHABLEND = 3 |
|
Bitblockübertragung ohne Dehnung |
Bitblt |
DXGK_GDIOP_BITBLT = 1 |
|
Pixelmischung von ClearType und Antialiased Text |
ClearTypeBlend |
DXGK_GDIOP_CLEARTYPEBLEND = 7 |
|
Farbfüllung |
ColorFill |
DXGK_GDIOP_COLORFILL = 2 |
|
Gestreckte Bitblockübertragung |
StretchBlt |
DXGK_GDIOP_STRETCHBLT = 4 |
|
Bitblockübertragung mit Transparenz |
TransparentBlt |
DXGK_GDIOP_TRANSPARENTBLT = 6 |
Das Betriebssystem verwendet den OpCode-Member von DXGK_RENDERKM_COMMAND, um den spezifischen hardwarebeschleunigten GDI-Renderingvorgang anzugeben, den der Anzeigeminiporttreiber verarbeiten muss. Das OpCode-Element ist vom Typ DXGK_RENDERKM_OPERATION, wobei die Werte in der Tabelle angezeigt werden.
Das Betriebssystem stellt auch den entsprechenden Wert des DXGK_RENDERKM_COMMAND CommandSize-Members zur Verfügung, der die Größe des aktuellen Renderingbefehls in Bytes angibt, einschließlich des Werts von OpCode und der Anzahl der Unterrechtecke im Befehl.
Weitere Informationen zur Fähigkeit des Grafikkartes, eine Bitblockübertragung mit Transparenz durchzuführen, sind in der D3DKM_TRANSPARENTBLTFLAGS-Struktur im DXGK_GDIARG_TRANSPARENTBLT-Flags-Member> enthalten.