Поделиться через


Метод 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

См. также раздел

IDXGIFactoryMedia