ID2D1RenderTarget::CreateSharedBitmap 方法 (d2d1.h)
创建一个 ID2D1Bitmap ,其数据与其他资源共享。
语法
HRESULT CreateSharedBitmap(
REFIID riid,
[in, out] void *data,
[in, optional] const D2D1_BITMAP_PROPERTIES *bitmapProperties,
[out] ID2D1Bitmap **bitmap
);
参数
riid
类型: REFIID
提供源数据的 对象的接口 ID。
[in, out] data
类型: void*
包含要与新 ID2D1Bitmap 共享的数据的 ID2D1Bitmap、IDXGISurface 或 IWICBitmapLock。 有关详细信息,请参见“备注”部分。
[in, optional] bitmapProperties
要创建的位图的像素格式和 DPI。 像素格式的DXGI_FORMAT部分必须与数据DXGI_FORMAT匹配,否则 方法将失败,但 alpha 模式不必匹配。 若要防止不匹配,可以传递 NULL 或从 D2D1::P ixelFormat 帮助程序函数获取的值。 DPI 设置不必与 数据的那些设置相匹配。 如果 dpiX 和 dpiY 均为 0.0f,则使用呈现目标的 DPI。
[out] bitmap
类型: ID2D1Bitmap**
此方法返回时,包含指向新位图的指针的地址。 此参数未经初始化即被传递。
返回值
类型: HRESULT
如果该方法成功,则返回 S_OK。 否则,它将返回 HRESULT 错误代码。
注解
CreateSharedBitmap 方法可用于高效重用位图数据,还可用于提供与 Direct3D 的互操作性。
共享 ID2D1Bitmap
通过传递由资源兼容的呈现器目标创建的 ID2D1Bitmap ,可以与该呈现器目标共享位图;原始 ID2D1Bitmap 和此方法创建的新 ID2D1Bitmap 都将指向相同的位图数据。 有关何时可以共享呈现目标资源的详细信息,请参阅 资源概述的共享呈现目标资源部分。还可以使用此方法重新解释现有位图的数据,并指定新的 DPI 或 alpha 模式。 例如,对于位图图集, ID2D1Bitmap 可能包含多个子图像,其中每个子图像应使用不同的 D2D1_ALPHA_MODE 呈现 (D2D1_ALPHA_MODE_PREMULTIPLIED 或 D2D1_ALPHA_MODE_IGNORE) 。 可以使用 CreateSharedBitmap 方法使用所需的 alpha 模式重新解释位图,而无需将位图的单独副本加载到内存中。
共享 IDXGISurface
使用 DXGI 表面呈现目标 (由 CreateDxgiSurfaceRenderTarget 方法) 创建的 ID2D1RenderTarget 对象时,可以将 IDXGISurface 图面传递到 CreateSharedBitmap 方法,以便与 Direct3D 共享视频内存,并将 Direct3D 内容作为 ID2D1Bitmap 进行操作。 如 资源概述中所述,呈现目标和 IDXGISurface 必须使用相同的 Direct3D 设备。
另请注意, IDXGISurface 必须使用支持的像素格式和 Alpha 模式中所述的 受支持的像素格式和 alpha 模式之一。
有关与 Direct3D 的互操作性的详细信息,请参阅 Direct2D 和 Direct3D 互操作性概述。
共享 IWICBitmapLock
IWICBitmapLock 存储 WIC 位图的内容,并保护它免受同时访问。 通过将 IWICBitmapLock 传递给 CreateSharedBitmap 方法,可以创建指向 IWICBitmapLock 中已存储的位图数据的 ID2D1Bitmap。若要将 IWICBitmapLock 与 CreateSharedBitmap 方法配合使用,呈现器目标必须使用软件呈现。 若要强制呈现目标使用软件呈现,请将 设置为 D2D1_RENDER_TARGET_TYPE_SOFTWARE用于创建呈现目标的 D2D1_RENDER_TARGET_PROPERTIES 结构的类型字段。 若要检查现有呈现目标是否使用软件呈现,请使用 IsSupported 方法。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7、带 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2008 R2、Windows Server 2008 SP2 和适用于 Windows Server 2008 的平台更新 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | d2d1.h |
Library | D2d1.lib |
DLL | D2d1.dll |