Metodo ID2D1RenderTarget::CreateSharedBitmap (d2d1.h)

Crea un ID2D1Bitmap i cui dati sono condivisi con un'altra risorsa.

Sintassi

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

Parametri

riid

Tipo: REFIID

ID interfaccia dell'oggetto che fornisce i dati di origine.

[in, out] data

Tipo: void*

ID2D1Bitmap, IDXGISurface o IWICBitmapLock che contiene i dati da condividere con il nuovo ID2D1Bitmap. Per altre informazioni, vedere la sezione Osservazioni.

[in, optional] bitmapProperties

Tipo: D2D1_BITMAP_PROPERTIES*

Formato pixel e DPI della bitmap per creare . La parte DXGI_FORMAT del formato pixel deve corrispondere alla DXGI_FORMAT dei dati o il metodo avrà esito negativo, ma le modalità alfa non devono corrispondere. Per evitare una mancata corrispondenza, è possibile passare NULL o il valore ottenuto dalla funzione helper D2D1::P ixelFormat . Le impostazioni DPI non devono corrispondere a quelle dei dati. Se dpiX e dpiY sono 0,0f, viene usato il valore DPI della destinazione di rendering.

[out] bitmap

Tipo: ID2D1Bitmap**

Quando termina, questo metodo contiene l'indirizzo di un puntatore alla nuova bitmap. Questo parametro viene passato non inizializzato.

Valore restituito

Tipo: HRESULT

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

Il metodo CreateSharedBitmap è utile per riutilizzare in modo efficiente i dati bitmap e può essere usato anche per garantire l'interoperabilità con Direct3D.

Condivisione di un ID2D1Bitmap

Passando un ID2D1Bitmap creato da una destinazione di rendering compatibile con le risorse, è possibile condividere una bitmap con tale destinazione di rendering; sia l'ID2D1Bitmap originale che il nuovo ID2D1Bitmap creato da questo metodo punteranno agli stessi dati bitmap. Per altre informazioni su quando è possibile condividere le risorse di destinazione di rendering, vedere la sezione Condivisione delle risorse di destinazione di rendering della panoramica delle risorse.

È anche possibile usare questo metodo per reinterpretare i dati di una bitmap esistente e specificare una nuova modalità DPI o alfa. Ad esempio, nel caso di un atlas bitmap, un ID2D1Bitmap può contenere più immagini secondarie, ognuna delle quali deve essere sottoposta a rendering con un D2D1_ALPHA_MODE diverso (D2D1_ALPHA_MODE_PREMULTIPLIED o D2D1_ALPHA_MODE_IGNORE). È possibile usare il metodo CreateSharedBitmap per reinterpretare la bitmap usando la modalità alfa desiderata senza dover caricare una copia separata della bitmap in memoria.

Condivisione di un IDXGISurface

Quando si usa una destinazione di rendering della superficie DXGI (un oggetto ID2D1RenderTarget creato dal metodo CreateDxgiSurfaceRenderTarget ), è possibile passare una superficie IDXGISurface al metodo CreateSharedBitmap per condividere la memoria video con Direct3D e modificare il contenuto Direct3D come ID2D1Bitmap. Come descritto in Panoramica delle risorse, la destinazione di rendering e l'IDXGISurface devono usare lo stesso dispositivo Direct3D.

Si noti anche che IDXGISurface deve usare uno dei formati pixel supportati e le modalità alfa descritte in Formati pixel supportati e modalità alfa.

Per altre informazioni sull'interoperabilità con Direct3D, vedere Panoramica dell'interoperabilità di Direct2D e Direct3D.

Condivisione di un IWICBitmapLock

Un IWICBitmapLock archivia il contenuto di una bitmap WIC e lo protegge dagli accessi simultanei. Passando un IWICBitmapLock al metodo CreateSharedBitmap , è possibile creare un OGGETTO ID2D1Bitmap che punti ai dati bitmap già archiviati in IWICBitmapLock.

Per usare IWICBitmapLock con il metodo CreateSharedBitmap , la destinazione di rendering deve usare il rendering software. Per forzare l'uso del rendering di una destinazione di rendering, impostare su D2D1_RENDER_TARGET_TYPE_SOFTWARE il campo di tipo della struttura D2D1_RENDER_TARGET_PROPERTIES utilizzata per creare la destinazione di rendering. Per verificare se una destinazione di rendering esistente usa il rendering software, utilizzare il metodo IsSupported .

Requisiti

Requisito Valore
Client minimo supportato Windows 7, Windows Vista con SP2 e Aggiornamento della piattaforma per Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 R2, Windows Server 2008 con SP2 e Platform Update per Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione d2d1.h
Libreria D2d1.lib
DLL D2d1.dll

Vedi anche

Panoramica sull'interoperabilità tra Direct2D e Direct3D

ID2D1RenderTarget

IDXGISurface

IWICBitmapLock

Panoramica delle risorse

Formati pixel e modalità alfa supportati