IDCompositionDevice2::CreateSurfaceFactory 方法 (dcomp.h)

创建 Microsoft DirectComposition Surface 工厂对象,该对象可用于创建其他 DirectComposition Surface 或虚拟 Surface 对象

语法

HRESULT CreateSurfaceFactory(
  [in]  IUnknown                    *renderingDevice,
  [out] IDCompositionSurfaceFactory **surfaceFactory
);

参数

[in] renderingDevice

指向要用于创建 DirectComposition 图面对象的 DirectX 设备的指针。 必须是指向实现 IDXGIDeviceID2D1Device 接口的 对象的指针。 此参数不能为 NULL。

[out] surfaceFactory

新建的图面工厂对象。 此参数不能为 NULL。

返回值

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

注解

Surface 工厂允许应用程序同时使用多个具有 DirectComposition 的单个 DXGI 或 Direct2D 设备。 每个表面工厂与一个 DXGI 或 Direct2D 设备具有永久关联,但 DirectComposition 设备可能具有任意数量的 Surface 工厂。

每个表面工厂都独立于其他工厂管理资源。 特别是,DirectComposition 会池表面分配,以减轻表面分配和解除分配成本。 此池基于每个表面工厂完成。

如果使用非 NULL renderingDevice 参数调用 DCompositionCreateDevice2 函数,则返回的 DirectComposition 设备对象在与给定呈现设备关联的封面下具有隐式表面工厂。 此隐式 Surface 工厂用于为 IDCompositionDevice::CreateSurfaceIDCompositionDevice::CreateVirtualSurfaceIDCompositionDevice2::CreateSurfaceIDCompositionDevice2::CreateVirtualSurface 方法提供服务。

只要它创建的任何表面或虚拟表面保持活动状态,Surface 对象就保持活动状态,要么直接因为应用程序具有直接引用,要么间接因为一个或多个此类表面与一个或多个视觉对象相关联。

要求

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

另请参阅

IDCompositionDevice2

IDCompositionDevice2::CreateSurface

IDCompositionDevice2::CreateVirtualSurface