GDI ハードウェア高速化レンダリング操作の指定
DxgkDdiRenderKm 関数が呼び出されると、オペレーティング システムは、pRenderKmArgs パラメーターを使用して実行する GDI ハードウェアアクセラレータレンダリング操作の種類を指定します。 DirectX グラフィックス カーネル サブシステム (Dxgkrnl.sys) のディスプレイポート ドライバーは、可変サイズのDXGK_RENDERKM_COMMAND 構造体の配列を含むコマンド バッファーを指す pRenderKmArgs->pCommand メンバーを設定します。 また、pRenderKmArgs->pCommandLength メンバーをコマンド バッファーのサイズ (バイト単位) に設定します。
ドライバーは、入力DXGK_RENDERKM_COMMANDコマンド バッファーを DMA バッファー コマンドに変換し、パッチの場所の一覧をビルドする必要があります。
DXGK_RENDERKM_COMMAND には、次の表に示すように、GDI ハードウェアアクセラレータレンダリング操作の特性を指定するメンバーが含まれています。
レンダリング操作 | DXGK_RENDERKM_COMMAND メンバー | 対応する DXGK_GDIARG_XXX 構造体 | 対応する DXGK_RENDERKM_OPERATION 値 |
---|---|---|---|
アルファブレンド |
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_TRANSPAREN TB (テラバイト)LT = 6 |
オペレーティング システムは、DXGK_RENDERKM_COMMANDの OpCode メンバーを使用して、ディスプレイ ミニポート ドライバーが処理する必要がある特定の GDI ハードウェアアクセラレータレンダリング操作を示します。 OpCode メンバーの型は DXGK_RENDERKM_OPERATION で、値は表に示されています。
オペレーティング システムは、現在のレンダリング コマンドのサイズをバイト単位で指定する、DXGK_RENDERKM_COMMAND CommandSize メンバーの適切な値も提供します。これには、OpCode の値とコマンド内のサブ矩形の数が含まれます。
透明度を使用してビット ブロック転送を実行するディスプレイ アダプターの機能の詳細については、DXGK_GDIARG_TRANSPARENTBLT->Flags メンバーに含まれる D3DKM_TRANSPARENTBLTFLAGS 構造体を参照してください。