Sdílet prostřednictvím


Překryvná DDI

Tato část platí jenom pro Windows 7 a novější a Windows Server 2008 R2 a novější verze operačního systému Windows.

DDI pro překrytí je rozšířením Direct3D verze 9 DDI pro ověření podpory překrytí. Rozhraní překrytí DDI se skládá z následujících vstupních bodů:

  • Hodnota D3DDDICAPS_CHECKOVERLAYSUPPORT z výčtu D3DDDICAPS_TYPE je používána modulem runtime Direct3D k ověření, zda zařízení pro zobrazení podporuje konkrétní překryv. Modul runtime nastaví D3DDDICAPS_CHECKOVERLAYSUPPORT ve členu typuD3DDDIARG_GETCAPS struktury, na kterou parametr pData funkce GetCaps ovladače odkazuje, když modul runtime volá GetCaps. Modul běhového prostředí také nastaví člena pInfo D3DDDIARG_GETCAPS na ukazatel na strukturu DDICHECKOVERLAYSUPPORTINPUT, která popisuje překryv. Pokud ovladač podporuje překrytí, ovladač nastaví členy struktury D3DOVERLAYCAPS a vrátí ukazatel na tuto strukturu ve členu pDataD3DDDIARG_GETCAPS. V opačném případě pokud ovladač nepodporuje překrytí, ovladač selže volání funkce GetCaps s D3DDDIERR_UNSUPPORTEDOVERLAYFORMAT nebo D3DDDIERR_UNSUPPORTEDOVERLAY v závislosti na tom, zda nedostatek podpory byl založen na formátu překrytí. D3DOVERLAYCAPS je popsáno v dokumentaci k sadě DirectX SDK.

    Ovladač nastaví členy maxOverlayDisplayWidth a MaxOverlayDisplayHeight D3DOVERLAYCAPS tak, aby indikovaly všechna omezení, která ovladač a hardware mohou mít, což zahrnuje konečnou velikost překrytí (po roztažení překryvných dat).

    Ovladač nastaví bity funkcí D3DOVERLAYCAPS_STRETCHX (0x00000040) a D3DOVERLAYCAPS_STRETCHY (0x00000080) v členu caps D3DOVERLAYCAPS, aby bylo možné překryvný hardware libovolně roztáhnout a zmenšit překryvná data. Ovladače by se neměly snažit emulovat protahování přes GPU a měly by nastavit pouze tyto limity, pokud hardware překryvu podporuje roztažení. Bývá obvykle vyžadováno méně režie, když aplikace provádí roztažení GPU jako součást fáze zpracování a skládání videa, než když ovladač provádí samostatný postup na konci pro emulaci roztažení překryvu.

  • Ovladač by měl zpracovávat následující příznaky bitových polí ze struktury D3DDDI_OVERLAYINFOFLAGS . Struktura D3DDDI_OVERLAYINFOFLAGS identifikuje typ operace překrytí, který se má provést. Struktura D3DDDI_OVERLAYINFOFLAGS je zadána ve členu Flags struktury D3DDDI_OVERLAYINFO ve volání funkce CreateOverlay nebo UpdateOverlay ovladače.

    LimitedRGB
    Překrytí používá omezený barevný rozsah RGB na rozdíl od celého rozsahu RGB. V omezeném rozsahu RGB je rozsah RGB komprimován tak, že 16:16:16 je černá a 235:235:235 je bílá.

    YCbCrBT709
    Překryv je BT.709, což označuje televizi s vysokým rozlišením (HDTV) místo BT.601.

    YCbCrxvYCC
    Překryv je rozšířen o YCbCr (xvYCC) oproti konvenčnímu YCbCr.

  • Pokud je formát zobrazení 64 bitů místo 32 bitů (například když desktopový Správce windows (DWM) používá D3DFMT_A16B16G16R16F pro režim zobrazení), modul runtime umístí dolní 32 bitů překryvného barevného klíče do členu DstColorKeyLow struktury D3DDDI_OVERLAYINFO a horních 32 bitů v členu DstColorKeyHigh D3DDDI_OVERLAYINFO.