Compartilhar via


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_GDIARG_ALPHABLEND

DXGK_GDIOP_ALPHABLEND = 3

transferência de bloco de bits sem alongamento

Bitblt

DXGK_GDIARG_BITBLT

DXGK_GDIOP_BITBLT = 1

Combinação de pixels de texto suavizado e ClearType

ClearTypeBlend

DXGK_GDIARG_CLEARTYPEBLEND

DXGK_GDIOP_CLEARTYPEBLEND = 7

preenchimento de cor

Colorfill

DXGK_GDIARG_COLORFILL

DXGK_GDIOP_COLORFILL = 2

transferência de bloco de bits ampliada

Stretchblt

DXGK_GDIARG_STRETCHBLT

DXGK_GDIOP_STRETCHBLT = 4

transferência de bloco de bits com transparência

Transparentblt

DXGK_GDIARG_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>.