Specifying GDI Hardware-Accelerated Rendering Operations
When the DxgkDdiRenderKm function is called, the operating system specifies the type of GDI hardware-accelerated rendering operation to perform through the pRenderKmArgs parameter. The display port driver of the DirectX graphics kernel subsystem (Dxgkrnl.sys) sets the pRenderKmArgs->pCommand member to point to a command buffer that contains an array of variable-size DXGK_RENDERKM_COMMAND structures. It also sets the pRenderKmArgs->pCommandLength member to the size of the command buffer, in bytes.
The driver must translate the input DXGK_RENDERKM_COMMAND command buffer into DMA buffer commands and build the patch location list.
DXGK_RENDERKM_COMMAND contains members that specify characteristics of GDI hardware-accelerated rendering operations, as described in the following table.
|Rendering Operation||DXGK_RENDERKM_COMMAND Member||Corresponding DXGK_GDIARG_XXX Structure||Corresponding DXGK_RENDERKM_OPERATION Value|
DXGK_GDIOP_ALPHABLEND = 3
bit-block transfer with no stretching
DXGK_GDIOP_BITBLT = 1
ClearType and antialiased text pixel blend
DXGK_GDIOP_CLEARTYPEBLEND = 7
DXGK_GDIOP_COLORFILL = 2
stretched bit-block transfer
DXGK_GDIOP_STRETCHBLT = 4
bit-block transfer with transparency
DXGK_GDIOP_TRANSPARENTBLT = 6
The operating system uses the OpCode member of DXGK_RENDERKM_COMMAND to indicate the specific GDI hardware-accelerated rendering operation that the display miniport driver must process. The OpCode member is of type DXGK_RENDERKM_OPERATION, with values shown in the table.
The operating system will also supply the appropriate value of the DXGK_RENDERKM_COMMAND CommandSize member, which specifies the size of the current rendering command, in bytes, including the value of OpCode and the number of sub-rectangles in the command.
Further information about the capability of the display adapter to perform a bit-block transfer with transparency is provided in the D3DKM_TRANSPARENTBLTFLAGS structure contained in the DXGK_GDIARG_TRANSPARENTBLT->Flags member.