IDCompositionDevice2::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
类型: UINT
图面的宽度(以像素为单位)。 最大宽度为 16,777,216 像素。
[in] initialHeight
类型: UINT
图面的高度(以像素为单位)。 最大高度为 16,777,216 像素。
[in] pixelFormat
类型: DXGI_FORMAT
图面的像素格式。
[in] alphaMode
类型: DXGI_ALPHA_MODE
如果像素格式包含 alpha 通道,则为 alpha 通道的含义。 可以为下列值之一:
值 | 含义 |
---|---|
|
未指定 alpha 通道。 此值与 DXGI_ALPHA_MODE_IGNORE 具有相同的效果。 |
|
颜色通道包含与 alpha 通道预乘的值。 |
|
应忽略 alpha 通道,并且位图应不透明呈现。 |
[out] virtualSurface
类型: IDCompositionVirtualSurface**
新建的图面对象。 此参数不能为 NULL。
返回值
类型: HRESULT
如果函数成功,则返回S_OK。 否则,将返回 HRESULT 错误代码。 有关 错误代码的列表,请参阅 DirectComposition 错误代码 。
注解
Microsoft DirectComposition 稀疏图面是一个逻辑对象,其行为类似于像素的矩形数组,可与视觉对象关联以用于合成。 对于其每个像素,图面不一定由任何物理视频或系统内存提供支持。 应用程序可以在不同时间实现或虚拟化逻辑图面的各个部分。
新建的图面对象处于未初始化状态。 虽然它未初始化,但图面对可视化树的构成没有影响。 它的行为与使用 100% 透明像素初始化的图面完全相同。
若要使用像素数据初始化图面,请使用 IDCompositionSurface::BeginDraw 和 IDCompositionSurface::EndDraw 方法。 此方法不仅为图面提供像素,而且还为这些像素分配实际存储空间。 内存分配一直持续到应用程序将部分内存返回给系统为止。 应用程序可以通过调用 IDCompositionVirtualSurface::Trim 方法释放部分或全部分配的内存。
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 |