Метод ID2D1DeviceContext2::CreateImageSourceFromDxgi (d2d1_3.h)
Создает источник изображения из набора поверхностей DXGI. Поверхности YCbCr автоматически преобразуются в RGBA во время последующего рисования.
Синтаксис
HRESULT CreateImageSourceFromDxgi(
IDXGISurface **surfaces,
UINT32 surfaceCount,
DXGI_COLOR_SPACE_TYPE colorSpace,
D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS options,
ID2D1ImageSource **imageSource
);
Параметры
surfaces
Тип: [in] IDXGISurface**
DXGI создает источник изображения.
surfaceCount
Тип: UINT32
Количество предоставленных поверхностей; значение должно находиться в диапазоне от одного до трех.
colorSpace
Цветовое пространство входных данных.
options
Тип: D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS
Параметры, управляющие преобразованиями цветового пространства.
imageSource
Тип: [out] ID2D1ImageSource**
Получает новый экземпляр источника образа.
Возвращаемое значение
Тип: HRESULT
S_OK в случае успешного выполнения, в противном случае — сбой HRESULT.
Комментарии
Этот метод создает источник изображения, который можно использовать для рисования изображения.
Этот метод поддерживает поверхности, использующие ограниченный набор форматов DXGI и типов цветового пространства DXGI. Поддерживаются только следующие сочетания типов цветовых пространств, форматов поверхностей и количества поверхностей:
Тип цветового пространства | Число поверхностей | Форматы Surface |
---|---|---|
DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 | 1 | Стандартные форматы пикселей, поддерживаемые D2D:
|
DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 | 1, 2, 3 | Если число surface равно 1:
|
DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601 DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601 DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709 DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709 DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020 DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020 |
1,2,3 |
Если число surface равно 1:
|
Gpu также должен иметь достаточную поддержку формата пикселей для поддержки D2D. Чтобы определить, поддерживает ли D2D формат, вызовите IsDxgiFormatSupported.
Этот API преобразует форматы YCbCr в sRGB с помощью указанного типа цветового пространства и параметров. Предполагается, что данные RGBA будут находиться в нужном пространстве, и D2D не применяет преобразование.
Если предоставлено несколько поверхностей, этот метод определяет, являются ли плоскости хрома подвыбранными (в 2x) относительными размерами каждого соответствующего исходного прямоугольника (или если параметр исходных прямоугольников имеет значение NULL, границы каждой поверхности). Второй и третий прямоугольники должны быть равными по размеру первому прямоугольнику или первому прямоугольнику с одним или обоими измерениями, масштабируемыми на 0,5 (с округлением вверх).
Если задано, исходные прямоугольники должны находиться в пределах соответствующей поверхности. Исходные прямоугольники могут иметь разные источники. В этом случае этот метод перемещает данные из каждой плоскости в соответствии друг с другом.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10 [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2016 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | d2d1_3.h |
DLL | D2d1.dll |