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
提供源數據的 物件的介面識別碼。
[in, out] data
類型: void*
ID2D1Bitmap、IDXGISurface 或 IWICBitmapLock,其中包含要與新 ID2D1Bitmap 共享的數據。 如需詳細資訊,請參閱<備註>一節。
[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 模式。 例如,在位圖 atlas 的情況下,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 方法,您可以建立 ID2D1Bitmap ,指向 IWICBitmapLock 中已儲存的位圖數據。若要搭配 CreateSharedBitmap 方法使用 IWICBitmapLock,轉譯目標必須使用軟體轉譯。 若要強制轉譯目標使用軟體轉譯,請將 設定為 D2D1_RENDER_TARGET_TYPE_SOFTWARE您用來建立轉譯目標的D2D1_RENDER_TARGET_PROPERTIES結構類型字段。 若要檢查現有的轉譯目標是否使用軟體轉譯,請使用 IsSupported 方法。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Windows Vista 的 Windows 7、Windows Vista SP2 和平臺更新 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 R2、Windows Server 2008 SP2 和 Platform Update for Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | d2d1.h |
程式庫 | D2d1.lib |
Dll | D2d1.dll |