Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.
Při implementaci DXVA-HD DDI v ovladači zobrazení v uživatelském režimu byste měli zvážit následující programovací tipy:
Ovladač musí nastavit bit D3DCAPS3_DXVAHD (0x00000400L) v členuCaps3 D3DCAPS9 struktury tak, aby indikoval, že podporuje DXVA-HD DDI, jinak modul runtime Direct3D nevolá funkci CreateVideoProcessor pro vytvoření zařízení DXVA-HD. Struktura D3DCAPS9 je popsaná v dokumentaci k sadě DirectX 9.0 SDK. Ovladač nastaví bit D3DCAPS3_DXVAHD jako odpověď na volání funkce GetCaps, kde je v členu Type struktury D3DDDIARG_GETCAPS, na kterou parametr pData odkazuje, nastavena hodnota D3DDDICAPS_GETD3D9CAPS.
Hodnota DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE ve výčtu DXVAHD_SURFACE_TYPE na úrovni aplikace nemá odpovídající hodnotu DDI. Aplikace nastaví hodnotu DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE pro prostý povrch mimo obrazovku, který je přidělen v jiném formátu pro procesor nebo modul plug-in videoprocesoru založeného na shaderu.
Hodnota DXVAHD_SURFACE_TYPE_VIDEO_OUTPUT výčtu DXVAHD_SURFACE_TYPE na úrovni aplikace odpovídá bitovému příznaku VideoProcessRenderTarget struktury D3DDDI_RESOURCEFLAGS. Modul runtime Direct3D nastaví VideoProcessRenderTarget v členu Flags struktury D3DDDIARG_CREATERESOURCE, když modul volá funkci ovladače CreateResource k vytvoření cíle zpracování videa pro vykreslování.
Modul runtime Direct3D udržuje jak přenos bloků bitů (bitblt), tak i stavy proudů. Modul runtime se vrátí k aplikaci, když je dotazován.
Metoda IDXVAHD_VideoProcessor::GetVideoProcessBltState na aplikační úrovni nemá žádnou odpovídající funkci DDI. Pokud však aplikace volá IDXVAHD_VideoProcessor::GetVideoProcessBltState k načtení privátních dat stavu bitblt pro procesor videa, modul runtime Direct3D volá funkci GetVideoProcessBltStatePrivate ovladače.
Metoda IDXVAHD_VideoProcessor::GetVideoProcessStreamState na úrovni aplikace nemá žádnou odpovídající funkci DDI. Pokud však aplikace volá IDXVAHD_VideoProcessor::GetVideoProcessBltState k načtení dat stavu privátního streamu pro procesor videa, modul runtime Direct3D volá funkci GetVideoProcessStreamStatePrivate ovladače.
Hodnota DXVAHD_STREAM_STATE_D3DFORMAT výčtu DXVAHD_STREAM_STATE na úrovni aplikace nemá v DXVAHDDDI_STREAM_STATE výčtu žádnou odpovídající hodnotu DDI. Plug-in videoprocesoru používá hodnotu DXVAHD_STREAM_STATE_D3DFORMAT pro povrch přidělený hodnotou DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE výčtu DXVAHD_SURFACE_TYPE na úrovni aplikace.
Výčet DXVAHD_DEVICE_TYPE nemá žádný odpovídající výčet DDI (například žádný DXVAHDDDI_DEVICE_TYPE). První člen struktury DXVAHDDDI_VPDEVCAPS je vyhrazen, zatímco první člen struktury DXVAHD_VPDEVCAPS na úrovni aplikace je nastaven na hodnotu DXVAHD_DEVICE_TYPE v členu DeviceType . Člen DeviceType je nastavený modulem runtime nebo modulem plug-in procesoru videa, který ovladač vždy hlásí jako DXVAHD_DEVICE_TYPE_HARDWARE.
Člen Multiplier struktury DXVAHDDDI_FILTER_RANGE_DATA je hodnota s plovoucí desetinnou čárkou. Ovladač by měl použít hodnotu, která může být reprezentována přesně jako základní zlomek 2. Například 0,25 může být reprezentováno přesně jako základ 2 zlomku, ale 0,1 nemůže.
Každá funkce DDIDXVA-HD by měla vrátit S_OK, E_INVALIDARG nebo E_OUTOFMEMORY.