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