指定 GDI 硬件加速渲染操作

调用 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_GDIARG_ALPHABLEND

DXGK_GDIOP_ALPHABLEND = 3

无拉伸的位块传输

BitBlt

DXGK_GDIARG_BITBLT

DXGK_GDIOP_BITBLT = 1

ClearType 和抗锯齿文本像素混合

ClearTypeBlend

DXGK_GDIARG_CLEARTYPEBLEND

DXGK_GDIOP_CLEARTYPEBLEND = 7

颜色填充

ColorFill

DXGK_GDIARG_COLORFILL

DXGK_GDIOP_COLORFILL = 2

拉伸位块传输

StretchBlt

DXGK_GDIARG_STRETCHBLT

DXGK_GDIOP_STRETCHBLT = 4

具有透明度的位块传输

TransparentBlt

DXGK_GDIARG_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 结构中提供了有关显示适配器以透明方式执行位块传输的功能的详细信息。