Udostępnij przez


Określanie operacji renderowania GDI przyspieszanych sprzętowo

Po wywołaniu funkcji DxgkDdiRenderKm system operacyjny określa typ operacji renderowania przyspieszanego przez sprzęt GDI do wykonania za pośrednictwem parametru pRenderKmArgs. Sterownik portu wyświetlania podsystemu jądra grafiki DirectX (Dxgkrnl.sys) ustawia członek składowy pRenderKmArgs->pCommand tak, aby wskazywał na bufor poleceń zawierający tablicę struktur o zmiennym rozmiarze DXGK_RENDERKM_COMMAND. Ustawia również element członkowski pRenderKmArgs->pCommandLength na rozmiar bufora poleceń, w bajtach.

Sterownik musi przetłumaczyć wejściowy bufor komend DXGK_RENDERKM_COMMAND na polecenia bufora DMA i skompilować listę lokacji poprawek.

DXGK_RENDERKM_COMMAND zawiera członków, którzy określają charakterystykę operacji renderowania przyspieszanych sprzętowo przez GDI, zgodnie z opisem w poniższej tabeli.

Operacja renderowania członek DXGK_RENDERKM_COMMAND Odpowiednia struktura DXGK_GDIARG_XXX Odpowiadająca wartość DXGK_RENDERKM_OPERATION

mieszanka alfa

AlphaBlend

DXGK_GDIARG_ALPHABLEND

DXGK_GDIOP_ALPHABLEND = 3

transfer bloków bitowych bez rozciągania

BitBlt

DXGK_GDIARG_BITBLT

DXGK_GDIOP_BITBLT = 1

ClearType i tekst z wygładzaniem krawędzi oraz mieszanie pikseli

ClearTypeBlend

DXGK_GDIARG_CLEARTYPEBLEND

DXGK_GDIOP_CLEARTYPEBLEND = 7

wypełnienie kolorem

ColorFill

DXGK_GDIARG_COLORFILL

DXGK_GDIOP_COLORFILL = 2

rozszerzone przesyłanie bloków bitowych

StretchBlt

DXGK_GDIARG_STRETCHBLT

DXGK_GDIOP_STRETCHBLT = 4

transfer bloków bitowych z przezroczystością

TransparentBlt

DXGK_GDIARG_TRANSPARENTBLT

DXGK_GDIOP_TRANSPARENTBLT = 6

System operacyjny używa OpCode elementu członkowskiego DXGK_RENDERKM_COMMAND, aby wskazać konkretną operację renderowania przyspieszaną przez sprzęt GDI, którą musi przetworzyć sterownik miniportu wyświetlania. Członek OpCode jest typu DXGK_RENDERKM_OPERATIONz wartościami przedstawionymi w tabeli.

System operacyjny dostarczy również odpowiednią wartość elementu-członkowskiego DXGK_RENDERKM_COMMAND CommandSize, który określa rozmiar bieżącego polecenia renderowania, w bajtach, w tym wartość OpCode i liczbę podprostokątów w poleceniu.

Więcej informacji na temat możliwości adaptera wyświetlania do realizacji przezroczystego transferu blokowych bitów znajduje się w strukturze D3DKM_TRANSPARENTBLTFLAGS zawartej w elemencie członkowskim flag DXGK_GDIARG_TRANSPARENTBLT->.