呼叫 DxgkDdiRenderKm 函式時,作系統會指定透過 pRenderKmArgs 參數執行的 GDI 硬體加速轉譯作業類型。 DirectX 圖形核心子系統(Dxgkrnl.sys)的顯示埠驅動程式會將 pRenderKmArgs->pCommand 成員設定為指向包含一組可變大小 DXGK_RENDERKM_COMMAND 結構的命令緩衝區。 它也會將 pRenderKmArgs-pCommandLength> 成員設定為命令緩衝區的大小,以位元組為單位。
驅動程式必須將輸入DXGK_RENDERKM_COMMAND命令緩衝區轉譯成 DMA 緩衝區命令,並建置修補程式位置清單。
DXGK_RENDERKM_COMMAND包含指定 GDI 硬體加速轉譯作業特性的成員,如下表所述。
渲染作業 | DXGK_RENDERKM_COMMAND成員 | 對應的DXGK_GDIARG_XXX結構 | 對應 DXGK_RENDERKM_OPERATION 值 |
---|---|---|---|
Alpha 混合 |
AlphaBlend |
DXGK_GDIOP_ALPHABLEND = 3 |
|
位元塊傳輸且無縮放 |
BitBlt |
DXGK_GDIOP_BITBLT = 1 |
|
ClearType 和反鋸齒文字像素混合 |
ClearTypeBlend |
DXGK_GDIOP_CLEARTYPEBLEND = 7 |
|
顏色填充 |
ColorFill |
DXGK_GDIOP_COLORFILL = 2 |
|
伸展位元區塊傳輸 |
StretchBlt |
DXGK_GDIOP_STRETCHBLT = 4 |
|
具有透明度的位區塊傳輸 |
TransparentBlt |
DXGK_GDIOP_TRANSPARENTBLT = 6 |
作系統會使用 DXGK_RENDERKM_COMMAND 的 OpCode 成員來指出顯示迷你埠驅動程式必須處理的特定 GDI 硬體加速轉譯作業。 OpCode 成員的類型為 DXGK_RENDERKM_OPERATION,數據表中顯示的值。
作系統也會提供DXGK_RENDERKM_COMMAND CommandSize 成員的適當值,指定目前轉譯命令的大小,以位元組為單位,包括 OpCode 的值和命令中的子矩形數目。
在 DXGK_GDIARG_TRANSPARENTBLT-Flags> 成員所包含的D3DKM_TRANSPARENTBLTFLAGS結構中,提供了顯示配接器執行具有透明度之位區塊傳輸功能的詳細資訊。