Metode ID2D1RenderTarget::CreateSharedBitmap (d2d1.h)

Membuat ID2D1Bitmap yang datanya dibagikan dengan sumber daya lain.

Sintaks

HRESULT CreateSharedBitmap(
                 REFIID                       riid,
  [in, out]      void                         *data,
  [in, optional] const D2D1_BITMAP_PROPERTIES *bitmapProperties,
  [out]          ID2D1Bitmap                  **bitmap
);

Parameter

riid

Jenis: REFIID

ID antarmuka objek yang menyediakan data sumber.

[in, out] data

Jenis: void*

ID2D1Bitmap, IDXGISurface, atau IWICBitmapLock yang berisi data untuk dibagikan dengan ID2D1Bitmap baru. Untuk informasi lebih lanjut, lihat bagian Keterangan.

[in, optional] bitmapProperties

Jenis: D2D1_BITMAP_PROPERTIES*

Format piksel dan DPI bitmap untuk membuat . Bagian DXGI_FORMAT dari format piksel harus cocok dengan DXGI_FORMATdata atau metode akan gagal, tetapi mode alfa tidak harus cocok. Untuk mencegah ketidakcocokan, Anda dapat meneruskan NULL atau nilai yang diperoleh dari fungsi pembantu D2D1::P ixelFormat . Pengaturan DPI tidak harus cocok dengan pengaturan data. Jika dpiX dan dpiY adalah 0,0f, DPI target render digunakan.

[out] bitmap

Jenis: ID2D1Bitmap**

Ketika metode ini kembali, berisi alamat penunjuk ke bitmap baru. Parameter ini diteruskan tanpa diinisialisasi.

Nilai kembali

Jenis: HRESULT

Jika metode ini berhasil, metode ini mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.

Keterangan

Metode CreateSharedBitmap berguna untuk menggunakan kembali data bitmap secara efisien dan juga dapat digunakan untuk memberikan interoperabilitas dengan Direct3D.

Berbagi ID2D1Bitmap

Dengan meneruskan ID2D1Bitmap yang dibuat oleh target render yang kompatibel dengan sumber daya, Anda dapat berbagi bitmap dengan target render tersebut; ID2D1Bitmap asli dan ID2D1Bitmap baru yang dibuat oleh metode ini akan menunjuk ke data bitmap yang sama. Untuk informasi selengkapnya tentang kapan sumber daya target render dapat dibagikan, lihat bagian Sumber Daya Target Render Berbagi di Gambaran Umum Sumber Daya.

Anda juga dapat menggunakan metode ini untuk menginterpretasikan kembali data bitmap yang ada dan menentukan DPI atau mode alfa baru. Misalnya, dalam kasus atlas bitmap, ID2D1Bitmap mungkin berisi beberapa sub-gambar, yang masing-masing harus dirender dengan D2D1_ALPHA_MODE yang berbeda (D2D1_ALPHA_MODE_PREMULTIPLIED atau D2D1_ALPHA_MODE_IGNORE). Anda dapat menggunakan metode CreateSharedBitmap untuk meninterpretasikan kembali bitmap menggunakan mode alfa yang diinginkan tanpa harus memuat salinan terpisah bitmap ke dalam memori.

Berbagi IDXGISurface

Saat menggunakan target render permukaan DXGI (objek ID2D1RenderTarget yang dibuat oleh metode CreateDxgiSurfaceRenderTarget ), Anda dapat meneruskan permukaan IDXGISurface ke metode CreateSharedBitmap untuk berbagi memori video dengan Direct3D dan memanipulasi konten Direct3D sebagai ID2D1Bitmap. Seperti yang dijelaskan dalam Gambaran Umum Sumber Daya, target render dan IDXGISurface harus menggunakan perangkat Direct3D yang sama.

Perhatikan juga bahwa IDXGISurface harus menggunakan salah satu format piksel dan mode alfa yang didukung yang dijelaskan dalam Format Piksel yang Didukung dan Mode Alfa.

Untuk informasi selengkapnya tentang interoperabilitas dengan Direct3D, lihat Gambaran Umum Interoperabilitas Direct2D dan Direct3D.

Berbagi IWICBitmapLock

IWICBitmapLock menyimpan konten bitmap WIC dan melindunginya dari akses simultan. Dengan meneruskan IWICBitmapLock ke metode CreateSharedBitmap , Anda dapat membuat ID2D1Bitmap yang menunjuk ke data bitmap yang sudah disimpan di IWICBitmapLock.

Untuk menggunakan IWICBitmapLock dengan metode CreateSharedBitmap , target render harus menggunakan penyajian perangkat lunak. Untuk memaksa target render menggunakan penyajian perangkat lunak, atur ke D2D1_RENDER_TARGET_TYPE_SOFTWARE bidang jenis struktur D2D1_RENDER_TARGET_PROPERTIES yang Anda gunakan untuk membuat target render. Untuk memeriksa apakah target render yang ada menggunakan penyajian perangkat lunak, gunakan metode IsSupported .

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 7, Windows Vista dengan SP2 dan Pembaruan Platform untuk Windows Vista [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008 R2, Windows Server 2008 dengan SP2 dan Pembaruan Platform untuk Windows Server 2008 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header d2d1.h
Pustaka D2d1.lib
DLL D2d1.dll

Lihat juga

Gambaran Umum Interoperabilitas Direct2D dan Direct3D

ID2D1RenderTarget

IDXGISurface

IWICBitmapLock

Gambaran Umum Sumber Daya

Format Piksel dan Mode Alfa yang Didukung