Compartilhar via


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

Cria um processador de vídeo DXVA (Aceleração de Vídeo) DirectX ou um destino de renderização do decodificador DXVA.

Sintaxe

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

A largura da superfície, em pixels.

[in] Height

A altura da superfície, em pixels.

[in] BackBuffers

O número de buffers de fundo. O método cria superfícies BackBuffers + 1.

[in] Format

O formato de pixel, especificado como um valor D3DFORMAT ou código FOURCC. Para obter mais informações, consulte a documentação do Direct3D.

[in] Pool

O pool de memória no qual criar a superfície, especificado como um valor D3DPOOL . Para obter mais informações, consulte a documentação do Direct3D. Os decodificadores geralmente devem usar o valor D3DPOOL_DEFAULT.

[in] Usage

Reservado. Defina esse valor como zero.

[in] DxvaType

O tipo de superfície a ser criado. Use um dos valores a seguir.

Valor Significado
DXVA2_VideoDecoderRenderTarget
Destino de renderização do decodificador de vídeo.
DXVA2_VideoProcessorRenderTarget
Destino de renderização do processador de vídeo. Usado para operações IDirectXVideoProcessor::VideoProcessBlt .
DXVA2_VideoSoftwareRenderTarget
Destino de renderização de software. Esse tipo de superfície é usado com dispositivos DXVA de software.

[out] ppSurface

O endereço de uma matriz de ponteiros IDirect3DSurface9 alocados pelo chamador. O tamanho da matriz deve ser 1 + BackBuffers (suficiente para os buffers traseiros mais um buffer frontal). O método preenche a matriz com ponteiros IDirect3DSurface9 . O chamador deve liberar todos os ponteiros da interface. Além disso, o buffer frontal mantém uma contagem de referência em cada um dos buffers traseiros. Portanto, os buffers de fundo nunca são excluídos até que o buffer frontal seja excluído.

[in, out] pSharedHandle

Um ponteiro para um identificador usado para compartilhar as superfícies entre dispositivos Direct3D. Defina esse parâmetro como NULL.

Valor retornado

O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.
D3DERR_INVALIDCALL
Parâmetro inválido
E_FAIL
O Gerenciador de Aceleração de Vídeo DirectX não é inicializado.
E_POINTER
Argumento de ponteiro NULL.

Comentários

Se o método retornar E_FAIL, tente chamar IDirect3DDeviceManager9::ResetDevice para redefinir o Gerenciador de Aceleração de Vídeo do DirectX.

Requisitos

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho dxva2api.h

Confira também

Aceleração de vídeo do DirectX 2.0

IDirectXVideoAccelerationService