Compartir a través de


Método IDirectXVideoAccelerationService::CreateSurface (dxva2api.h)

Crea un procesador de vídeo de Aceleración de vídeo directX (DXVA) o un destino de representación de descodificador DXVA.

Sintaxis

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
);

Parámetros

[in] Width

Ancho de la superficie, en píxeles.

[in] Height

Alto de la superficie, en píxeles.

[in] BackBuffers

Número de búferes de reserva. El método crea superficies BackBuffers + 1.

[in] Format

Formato de píxel, especificado como un valor D3DFORMAT o código FOURCC. Para obtener más información, consulte la documentación de Direct3D.

[in] Pool

Grupo de memoria en el que se va a crear la superficie, especificado como un valor D3DPOOL . Para obtener más información, consulte la documentación de Direct3D. Los descodificadores suelen usar el valor D3DPOOL_DEFAULT.

[in] Usage

Reservado. Establezca este valor en cero.

[in] DxvaType

Tipo de superficie que se va a crear. Use uno de los valores siguientes.

Valor Significado
DXVA2_VideoDecoderRenderTarget
Destino de representación del descodificador de vídeo.
DXVA2_VideoProcessorRenderTarget
Destino de representación del procesador de vídeo. Se usa para las operaciones IDirectXVideoProcessor::VideoProcessBlt .
DXVA2_VideoSoftwareRenderTarget
Destino de representación de software. Este tipo de superficie es para su uso con dispositivos DXVA de software.

[out] ppSurface

Dirección de una matriz de punteros IDirect3DSurface9 asignados por el autor de la llamada. El tamaño de la matriz debe ser 1 + BackBuffers (suficiente para los búferes de reserva más un búfer frontal). El método rellena la matriz con punteros IDirect3DSurface9 . El llamador debe liberar todos los punteros de interfaz. Además, el búfer frontal contiene un recuento de referencias en cada uno de los búferes posteriores. Por lo tanto, los búferes de reserva nunca se eliminan hasta que se elimina el búfer frontal.

[in, out] pSharedHandle

Puntero a un identificador que se usa para compartir las superficies entre dispositivos Direct3D. Establezca este parámetro en NULL.

Valor devuelto

El método devuelve un valor HRESULT. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.

Código devuelto Descripción
S_OK
El método se ha llevado a cabo de forma correcta.
D3DERR_INVALIDCALL
parámetro no válido
E_FAIL
El Administrador de aceleración de vídeo de DirectX no se inicializa.
E_POINTER
Argumento de puntero NULL.

Comentarios

Si el método devuelve E_FAIL, intente llamar a IDirect3DDeviceManager9::ResetDevice para restablecer el Administrador de aceleración de vídeo de DirectX.

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado dxva2api.h

Consulte también

Aceleración de vídeo de DirectX 2.0

IDirectXVideoAccelerationService