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
提供的图面数;必须介于 1 到 3 之间。
colorSpace
输入的颜色空间。
options
类型: D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS
控制颜色空间转换的选项。
imageSource
类型:[out] ID2D1ImageSource**
接收新的图像源实例。
返回值
类型: HRESULT
如果成功,则S_OK,否则返回失败 HRESULT。
注解
此方法创建可用于绘制图像的图像源。
此方法支持使用一组有限的 DXGI 格式和 DXGI 颜色空间类型的图面。 仅支持以下一组颜色空间类型、图面格式和图面计数的组合:
颜色空间类型 | Surface Count () | 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 不应用任何转换。
如果提供了多个图面,此方法会根据每个相应源矩形 (的相对大小推断色度平面是否按 2 倍) (子采样,或者如果源矩形参数为 NULL,则每个图面的边界) 。 第二个和第三个矩形的大小必须等于第一个矩形,或与第一个矩形的大小相等,其中一个或两个尺寸都按 0.5 (,同时向上舍入) 。
如果提供,源矩形必须在相应图面的边界内。 源矩形可能具有不同的原点。 在这种情况下,此方法移动每个平面中的数据以彼此对齐。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2016 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | d2d1_3.h |
DLL | D2d1.dll |