IDCompositionSurfaceFactory::CreateSurface 方法 (dcomp.h)
创建可与一个或多个视觉对象关联的图面对象进行组合。
语法
HRESULT CreateSurface(
[in] UINT width,
[in] UINT height,
[in] DXGI_FORMAT pixelFormat,
[in] DXGI_ALPHA_MODE alphaMode,
[out] IDCompositionSurface **surface
);
参数
[in] width
图面的宽度(以像素为单位)。
[in] height
图面的高度(以像素为单位)。
[in] pixelFormat
图面的像素格式。
[in] alphaMode
如果 alpha 通道包含在像素格式中,则为 alpha 通道的格式。 这可以是DXGI_ALPHA_MODE_PREMULTIPLIED或DXGI_ALPHA_MODE_IGNORE之一。 也可以DXGI_ALPHA_MODE_UNSPECIFIED,这被解释为DXGI_ALPHA_MODE_IGNORE。
[out] surface
新创建的 Surface 对象。 此参数不能为 NULL。
返回值
如果函数成功,则返回S_OK。 否则,将返回 HRESULT 错误代码。 有关错误代码列表,请参阅 DirectComposition 错误代码。
备注
Microsoft DirectComposition 图面是像素的矩形数组,可与视觉对象关联进行合成。
新创建的 Surface 对象处于未初始化状态。 虽然图面未初始化,但对可视化树的组成没有影响。 它的行为与具有 100% 透明像素的表面完全相同。
若要使用像素数据初始化图面,请使用 IDCompositionSurface::BeginDraw 方法。 对此方法的第一次调用必须涵盖整个外围区域,以便为每个像素提供初始值。 后续调用可能会指定要更新的图面的较小子矩形。
如果宽度或高度超过最大纹理大小,此方法将失败。 如果方案需要的维度超过最大纹理大小,请使用 CreateVirtualSurface 方法。
DirectComposition 图面支持以下像素格式:
- DXGI_FORMAT_B8G8R8A8_UNORM
- DXGI_FORMAT_R8G8B8A8_UNORM
- DXGI_FORMAT_R16G16B16A16_FLOAT
要求
最低受支持的客户端 | Windows 8.1 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2012 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | dcomp.h |
Library | Dcomp.lib |
DLL | Dcomp.dll |
请参阅
IDCompositionDevice2::CreateSurface