IDCompositionSurfaceFactory::CreateVirtualSurface 方法 (dcomp.h)

创建一个稀疏填充的图面,该图面可与一个或多个用于合成的视觉对象相关联。

语法

HRESULT CreateVirtualSurface(
  [in]  UINT                        initialWidth,
  [in]  UINT                        initialHeight,
  [in]  DXGI_FORMAT                 pixelFormat,
  [in]  DXGI_ALPHA_MODE             alphaMode,
  [out] IDCompositionVirtualSurface **virtualSurface
);

参数

[in] initialWidth

图面的宽度(以像素为单位)。 最大宽度为 16,777,216 像素。

[in] initialHeight

图面的高度(以像素为单位)。 最大高度为 16,777,216 像素。

[in] pixelFormat

图面的像素格式。

[in] alphaMode

如果 alpha 通道包含在像素格式中,则为 alpha 通道的格式。 这可以是DXGI_ALPHA_MODE_PREMULTIPLIED或DXGI_ALPHA_MODE_IGNORE之一。 也可以DXGI_ALPHA_MODE_UNSPECIFIED,这被解释为DXGI_ALPHA_MODE_IGNORE。

[out] virtualSurface

新创建的虚拟图面对象。 此参数不能为 NULL。

返回值

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

注解

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

若要使用像素数据初始化图面,请使用 IDCompositionSurface::BeginDraw 方法。 此方法不仅为图面提供像素,而且还为这些像素分配实际存储空间。 内存分配一直持续到应用程序将部分内存返回给系统为止。 应用程序可以通过调用 IDCompositionVirtualSurface::Trim 或 IDCompositionVirtualSurface::Resize 方法释放部分或全部分配的内存。

Microsoft 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

IDCompositionDevice2::CreateVirtualSurface

IDCompositionSurfaceFactory

IDCompositionSurfaceFactory::CreateVirtualSurface