IDCompositionDevice::CreateSurface 方法 (dcomp.h)

创建可与一个或多个视觉对象关联的可更新 Surface 对象进行合成。

语法

HRESULT CreateSurface(
  [in]  UINT                 width,
  [in]  UINT                 height,
  [in]  DXGI_FORMAT          pixelFormat,
  [in]  DXGI_ALPHA_MODE      alphaMode,
  [out] IDCompositionSurface **surface
);

parameters

[in] width

类型: UINT

图面的宽度(以像素为单位)。

[in] height

类型: UINT

图面的高度(以像素为单位)。

[in] pixelFormat

类型: DXGI_FORMAT

图面的像素格式。

[in] alphaMode

类型: DXGI_ALPHA_MODE

如果 alpha 通道包含在像素格式中,则为 alpha 通道的格式。 可以为下列值之一:

含义
DXGI_ALPHA_MODE_UNSPECIFIED 未指定 alpha 通道。 此值与 DXGI_ALPHA_MODE_IGNORE 具有相同的效果。
DXGI_ALPHA_MODE_PREMULTIPLIED 颜色通道包含与 alpha 通道预乘的值。
DXGI_ALPHA_MODE_IGNORE 应忽略 alpha 通道,并且位图应不透明呈现。

[out] surface

类型: IDCompositionSurface**

新创建的 Surface 对象。 此参数不能为 NULL。

返回值

类型: HRESULT

如果函数成功,则返回S_OK。 否则,将返回 HRESULT 错误代码。 有关错误代码列表,请参阅 DirectComposition 错误代码。

备注

Microsoft DirectComposition 图面是像素的矩形数组,可与视觉对象关联进行合成。

新创建的 Surface 对象处于未初始化状态。 虽然图面未初始化,但对可视化树的组成没有影响。 它的行为与具有 100% 透明像素的表面完全相同。

若要使用像素数据初始化图面,请使用 IDCompositionSurface::BeginDraw 方法。 对此方法的第一次调用必须涵盖整个外围区域,以便为每个像素提供初始值。 后续调用可能会指定要更新的图面的较小子矩形。

DirectComposition 图面支持以下像素格式:

  • DXGI_FORMAT_B8G8R8A8_UNORM
  • DXGI_FORMAT_R8G8B8A8_UNORM
  • DXGI_FORMAT_R16G16B16A16_FLOAT

要求

   
最低受支持的客户端 Windows 8 [仅限桌面应用]
最低受支持的服务器 Windows Server 2012 [仅限桌面应用]
目标平台 Windows
标头 dcomp.h
Library Dcomp.lib
DLL Dcomp.dll

另请参阅

IDCompositionDevice

IDCompositionDevice::CreateVirtualSurface