Указание операций отрисовки Hardware-Accelerated GDI
При вызове функции DxgkDdiRenderKm операционная система указывает тип операции отрисовки с аппаратным ускорением GDI, выполняемой с помощью параметра pRenderKmArgs . Драйвер порта отображения подсистемы ядра графики 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 |
---|---|---|---|
альфа-смесь |
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 |
Операционная система использует элемент OpCode DXGK_RENDERKM_COMMAND для указания конкретной операции отрисовки с аппаратным ускорением GDI, которую должен обработать драйвер минипорта дисплея. Элемент OpCode имеет тип DXGK_RENDERKM_OPERATION со значениями, отображаемыми в таблице.
Операционная система также предоставит соответствующее значение члена DXGK_RENDERKM_COMMAND CommandSize , указывающее размер текущей команды отрисовки в байтах, включая значение OpCode и количество вложенных прямоугольников в команде.
Дополнительные сведения о возможности адаптера дисплея выполнять передачу битовых блоков с прозрачностью приведены в структуре D3DKM_TRANSPARENTBLTFLAGS, содержащейся в элементе DXGK_GDIARG_TRANSPARENTBLT-Flags>.