IDirectXVideoAccelerationService::CreateSurface-Methode (dxva2api.h)

Erstellt ein DirectX Video Acceleration (DXVA)-Videoprozessor- oder DXVA-Decoder-Renderziel.

Syntax

HRESULT CreateSurface(
  [in]      UINT              Width,
  [in]      UINT              Height,
  [in]      UINT              BackBuffers,
  [in]      D3DFORMAT         Format,
  [in]      D3DPOOL           Pool,
  [in]      DWORD             Usage,
  [in]      DWORD             DxvaType,
  [out]     IDirect3DSurface9 **ppSurface,
  [in, out] HANDLE            *pSharedHandle
);

Parameter

[in] Width

Die Breite der Oberfläche in Pixel.

[in] Height

Die Höhe der Oberfläche in Pixel.

[in] BackBuffers

Die Anzahl der Backpuffer. Die Methode erstellt BackBuffers + 1 Oberflächen.

[in] Format

Das Pixelformat, das als D3DFORMAT-Wert oder FOURCC-Code angegeben wird. Weitere Informationen finden Sie in der Direct3D-Dokumentation.

[in] Pool

Der Speicherpool, in dem die Oberfläche erstellt werden soll, der als D3DPOOL-Wert angegeben wird. Weitere Informationen finden Sie in der Direct3D-Dokumentation. Decoder sollten im Allgemeinen den Wert D3DPOOL_DEFAULT verwenden.

[in] Usage

Reserviert. Legen Sie diesen Wert auf 0 fest.

[in] DxvaType

Der Typ der zu erstellenden Oberfläche. Verwenden Sie einen der folgenden Werte.

Wert Bedeutung
DXVA2_VideoDecoderRenderTarget
Videodecoder-Renderziel.
DXVA2_VideoProcessorRenderTarget
Videoprozessor-Renderziel. Wird für IDirectXVideoProcessor::VideoProcessBlt-Vorgänge verwendet.
DXVA2_VideoSoftwareRenderTarget
Softwarerenderziel. Dieser Oberflächentyp ist für die Verwendung mit DXVA-Softwaregeräten vorgesehen.

[out] ppSurface

Die Adresse eines Arrays von IDirect3DSurface9-Zeigern, die vom Aufrufer zugewiesen wurden. Die Größe des Arrays muss 1 + BackBuffers sein (ausreichend für die Backpuffer plus einen Frontpuffer). Die -Methode füllt das Array mit IDirect3DSurface9-Zeigern . Der Aufrufer muss alle Schnittstellenzeiger freigeben. Darüber hinaus enthält der Frontpuffer eine Verweisanzahl für jeden der Backpuffer. Daher werden die Backpuffer erst gelöscht, wenn der Frontpuffer gelöscht wird.

[in, out] pSharedHandle

Ein Zeiger auf einen Handle, der zum Freigeben der Oberflächen zwischen Direct3D-Geräten verwendet wird. Legen Sie diesen Parameter auf NULL fest.

Rückgabewert

Die Methode gibt ein HRESULT zurück. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich ausgeführt.
D3DERR_INVALIDCALL
Ungültiger Parameter
E_FAIL
Der DirectX-Videobeschleunigungs-Manager wird nicht initialisiert.
E_POINTER
NULL-Zeigerargument.

Hinweise

Wenn die Methode E_FAIL zurückgibt, versuchen Sie, IDirect3DDeviceManager9::ResetDevice aufzurufen, um den DirectX Video Acceleration Manager zurückzusetzen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile dxva2api.h

Weitere Informationen

DirectX VideoBeschleunigung 2.0

IDirectXVideoAccelerationService