Especificando operações de renderização de Hardware-Accelerated GDI
Quando a função DxgkDdiRenderKm é chamada, o sistema operacional especifica o tipo de operação de renderização acelerada por hardware GDI a ser executada por meio do parâmetro pRenderKmArgs . O driver de porta de exibição do subsistema de kernel de elementos gráficos DirectX (Dxgkrnl.sys) define o membro pRenderKmArgs-pCommand> para apontar para um buffer de comando que contém uma matriz de estruturas de DXGK_RENDERKM_COMMAND de tamanho variável. Ele também define o membro pRenderKmArgs-pCommandLength> como o tamanho do buffer de comando, em bytes.
O driver deve converter a entrada DXGK_RENDERKM_COMMAND buffer de comandos em comandos de buffer de DMA e criar a lista de locais de patch.
DXGK_RENDERKM_COMMAND contém membros que especificam características de operações de renderização acelerada por hardware GDI, conforme descrito na tabela a seguir.
Operação de renderização | Membro DXGK_RENDERKM_COMMAND | Estrutura de DXGK_GDIARG_XXX correspondente | Valor de DXGK_RENDERKM_OPERATION correspondente |
---|---|---|---|
mistura alfa |
Alphablend |
DXGK_GDIOP_ALPHABLEND = 3 |
|
transferência de bloco de bits sem alongamento |
Bitblt |
DXGK_GDIOP_BITBLT = 1 |
|
Combinação de pixels de texto suavizado e ClearType |
ClearTypeBlend |
DXGK_GDIOP_CLEARTYPEBLEND = 7 |
|
preenchimento de cor |
Colorfill |
DXGK_GDIOP_COLORFILL = 2 |
|
transferência de bloco de bits ampliada |
Stretchblt |
DXGK_GDIOP_STRETCHBLT = 4 |
|
transferência de bloco de bits com transparência |
Transparentblt |
DXGK_GDIOP_TRANSPARENTBLT = 6 |
O sistema operacional usa o membro OpCode do DXGK_RENDERKM_COMMAND para indicar a operação de renderização acelerada por hardware GDI específica que o driver de miniporto de exibição deve processar. O membro OpCode é do tipo DXGK_RENDERKM_OPERATION, com valores mostrados na tabela.
O sistema operacional também fornecerá o valor apropriado do membro DXGK_RENDERKM_COMMAND CommandSize , que especifica o tamanho do comando de renderização atual, em bytes, incluindo o valor de OpCode e o número de sub-retângulos no comando .
Mais informações sobre a funcionalidade do adaptador de exibição para executar uma transferência de bloco de bits com transparência são fornecidas na estrutura D3DKM_TRANSPARENTBLTFLAGS contida no membro DXGK_GDIARG_TRANSPARENTBLT-Flags>.