IDirectXVideoAccelerationService::CreateSurface 메서드(dxva2api.h)
DXVA(DirectX Video Acceleration) 비디오 프로세서 또는 DXVA 디코더 렌더링 대상을 만듭니다.
구문
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
);
매개 변수
[in] Width
표면의 너비(픽셀)입니다.
[in] Height
표면의 높이(픽셀)입니다.
[in] BackBuffers
백 버퍼의 수입니다. 메서드는 BackBuffers + 1개의 표면을 만듭니다.
[in] Format
D3DFORMAT 값 또는 FOURCC 코드로 지정된 픽셀 형식입니다. 자세한 내용은 Direct3D 설명서를 참조하세요.
[in] Pool
표면을 만들 메모리 풀로 , D3DPOOL 값으로 지정됩니다. 자세한 내용은 Direct3D 설명서를 참조하세요. 디코더는 일반적으로 D3DPOOL_DEFAULT 값을 사용해야 합니다.
[in] Usage
예약되어 있습니다. 이 값을 0으로 설정합니다.
[in] DxvaType
만들 표면의 유형입니다. 다음 값 중 하나를 사용합니다.
값 | 의미 |
---|---|
|
비디오 디코더 렌더링 대상. |
|
비디오 프로세서 렌더링 대상입니다. IDirectXVideoProcessor::VideoProcessBlt 작업에 사용됩니다. |
|
소프트웨어 렌더링 대상. 이 표면 유형은 소프트웨어 DXVA 디바이스에서 사용하기 위한 것입니다. |
[out] ppSurface
호출자가 할당한 IDirect3DSurface9 포인터 배열의 주소입니다. 배열의 크기는 1 + BackBuffers 여야 합니다(백 버퍼와 전면 버퍼 1개에 충분). 메서드는 배열을 IDirect3DSurface9 포인터로 채웁니다. 호출자는 모든 인터페이스 포인터를 해제해야 합니다. 또한 프런트 버퍼는 각 백 버퍼에 대한 참조 횟수를 보유합니다. 따라서 앞면 버퍼가 삭제될 때까지 백 버퍼는 삭제되지 않습니다.
[in, out] pSharedHandle
Direct3D 디바이스 간에 표면을 공유하는 데 사용되는 핸들에 대한 포인터입니다. 이 매개 변수를 NULL로 설정합니다.
반환 값
이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.
반환 코드 | Description |
---|---|
|
메서드가 성공했습니다. |
|
잘못된 매개 변수 |
|
DirectX 비디오 가속 관리자가 초기화되지 않았습니다. |
|
NULL 포인터 인수입니다. |
설명
메서드가 E_FAIL 반환하는 경우 IDirect3DDeviceManager9::ResetDevice 를 호출하여 DirectX 비디오 가속 관리자를 다시 설정합니다.
요구 사항
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | dxva2api.h |