Метод IDXGIFactoryMedia::CreateDecodeSwapChainForCompositionSurfaceHandle (dxgi1_3.h)
Создает цепочку буферов YUV для существующего дескриптора поверхности DirectComposition . Цепочка буферов создается с уже существующими буферами, и требуется очень мало описательных элементов. Вместо этого для этого метода требуется дескриптор поверхности DirectComposition и буфер IDXGIResource для хранения декодированных данных кадра. Формат цепочки буферов определяется форматом подресурсов IDXGIResource.
Синтаксис
HRESULT CreateDecodeSwapChainForCompositionSurfaceHandle(
[in] IUnknown *pDevice,
[in, optional] HANDLE hSurface,
[in] DXGI_DECODE_SWAP_CHAIN_DESC *pDesc,
[in] IDXGIResource *pYuvDecodeBuffers,
[in, optional] IDXGIOutput *pRestrictToOutput,
[out] IDXGIDecodeSwapChain **ppSwapChain
);
Параметры
[in] pDevice
Указатель на устройство Direct3D для цепочки буферов. Этот параметр не может иметь значение NULL. Программные драйверы, такие как D3D_DRIVER_TYPE_REFERENCE, не поддерживаются для цепочек буферов композиции.
[in, optional] hSurface
Дескриптор существующей поверхности DirectComposition . Этот параметр не может иметь значение NULL.
[in] pDesc
Указатель на структуру DXGI_DECODE_SWAP_CHAIN_DESC для описания цепочки буферов. Этот параметр не может иметь значение NULL.
[in] pYuvDecodeBuffers
Указатель на интерфейс IDXGIResource , представляющий ресурс, содержащий сведения, которые декодирует CreateDecodeSwapChainForCompositionSurfaceHandle .
[in, optional] pRestrictToOutput
Указатель на интерфейс IDXGIOutput для цепочки буферов для ограничения содержимого. Если цепочка буферов перемещается в другой выход, содержимое становится черным. При необходимости можно задать для этого параметра целевой объект вывода, который использует DXGI_PRESENT_RESTRICT_TO_OUTPUT для ограничения содержимого в этих выходных данных. Если цепочка буферов перемещается в другой выход, содержимое становится черным.
Необходимо также передать флаг DXGI_PRESENT_RESTRICT_TO_OUTPUT в вызове, чтобы содержимое было затемнено в любых других выходных данных. Если вы хотите ограничить содержимое другими выходными данными, необходимо создать новую цепочку буферов. Однако можно условно ограничить содержимое на основе флага DXGI_PRESENT_RESTRICT_TO_OUTPUT .
Задайте для этого параметра значение NULL , если вы не хотите ограничивать содержимое целевым объектом вывода.
[out] ppSwapChain
Указатель на переменную, которая получает указатель на интерфейс IDXGIDecodeSwapChain для цепочки буферов, создаваемой этим методом.
Возвращаемое значение
CreateDecodeSwapChainForCompositionSurfaceHandle возвращает:
- S_OK, если цепочка буферов успешно создана.
- E_OUTOFMEMORY, если память недоступна для завершения операции.
- DXGI_ERROR_INVALID_CALL , если вызывающее приложение предоставило недопустимые данные, например, если pDesc, pYuvDecodeBuffers или ppSwapChain имеет значение NULL.
- Возможно, другие коды ошибок, описанные в разделе DXGI_ERROR , которые определяются типом устройства, передаваемого в pDevice.
Комментарии
IdXGIResource, предоставляемый с помощью параметра pYuvDecodeBuffers, должен указывать по крайней мере на один подресурс, а все подресурсы должны быть созданы с флагом D3D11_BIND_DECODER.
Требования
Минимальная версия клиента | Windows 8.1 [только классические приложения] |
Минимальная версия сервера | Windows Server 2012 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | dxgi1_3.h |
Библиотека | Dxgi.lib |