Partager via


ID2D1RenderTarget ::CreateSharedBitmap, méthode (d2d1.h)

Crée un ID2D1Bitmap dont les données sont partagées avec une autre ressource.

Syntaxe

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

Paramètres

riid

Type : REFIID

ID d’interface de l’objet fournissant les données sources.

[in, out] data

Type : void*

ID2D1Bitmap, IDXGISurface ou IWICBitmapLock qui contient les données à partager avec le nouvel ID2D1Bitmap. Pour plus d'informations, consultez la section Notes.

[in, optional] bitmapProperties

Type : D2D1_BITMAP_PROPERTIES*

Format de pixel et PPP de la bitmap à créer. La partie DXGI_FORMAT du format de pixel doit correspondre à la DXGI_FORMAT des données , sinon la méthode échoue, mais les modes alpha n’ont pas besoin de correspondre. Pour éviter une incompatibilité, vous pouvez passer NULL ou la valeur obtenue à partir de la fonction d’assistance D2D1 ::P ixelFormat . Les paramètres PPP ne doivent pas correspondre à ceux des données. Si dpiX et dpiY sont tous deux de 0,0f, le ppp de la cible de rendu est utilisé.

[out] bitmap

Type : ID2D1Bitmap**

Lorsque cette méthode est retournée, contient l’adresse d’un pointeur vers la nouvelle bitmap. Ce paramètre est passé sans être initialisé.

Valeur retournée

Type : HRESULT

Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT .

Remarques

La méthode CreateSharedBitmap est utile pour réutiliser efficacement les données bitmap et peut également être utilisée pour assurer l’interopérabilité avec Direct3D.

Partage d’un ID2D1Bitmap

En passant un ID2D1Bitmap créé par une cible de rendu compatible avec les ressources, vous pouvez partager une bitmap avec cette cible de rendu ; le ID2D1Bitmap d’origine et le nouveau ID2D1Bitmap créé par cette méthode pointent vers les mêmes données bitmap. Pour plus d’informations sur le moment où les ressources cibles de rendu peuvent être partagées, consultez la section Partage des ressources de cible de rendu de la Vue d’ensemble des ressources.

Vous pouvez également utiliser cette méthode pour réinterpréter les données d’une bitmap existante et spécifier un nouveau mode PPP ou alpha. Par exemple, dans le cas d’un atlas bitmap, un ID2D1Bitmap peut contenir plusieurs sous-images, chacune devant être rendue avec une D2D1_ALPHA_MODE différente (D2D1_ALPHA_MODE_PREMULTIPLIED ou D2D1_ALPHA_MODE_IGNORE). Vous pouvez utiliser la méthode CreateSharedBitmap pour réinterpréter la bitmap en utilisant le mode alpha souhaité sans avoir à charger une copie distincte de la bitmap en mémoire.

Partage d’un IDXGISurface

Lors de l’utilisation d’une cible de rendu de surface DXGI (objet ID2D1RenderTarget créé par la méthode CreateDxgiSurfaceRenderTarget ), vous pouvez passer une surface IDXGISurface à la méthode CreateSharedBitmap pour partager de la mémoire vidéo avec Direct3D et manipuler du contenu Direct3D en tant qu’ID2D1Bitmap. Comme décrit dans la vue d’ensemble des ressources, la cible de rendu et l’IDXGISurface doivent utiliser le même appareil Direct3D.

Notez également que l’IDXGISurface doit utiliser l’un des formats de pixels et des modes alpha pris en charge décrits dans Formats de pixels pris en charge et Modes alpha.

Pour plus d’informations sur l’interopérabilité avec Direct3D, consultez Vue d’ensemble de l’interopérabilité direct2D et Direct3D.

Partage d’un IWICBitmapLock

Un IWICBitmapLock stocke le contenu d’une bitmap WIC et le protège contre les accès simultanés. En passant un IWICBitmapLock à la méthode CreateSharedBitmap , vous pouvez créer un ID2D1Bitmap qui pointe vers les données bitmap déjà stockées dans le IWICBitmapLock.

Pour utiliser un IWICBitmapLock avec la méthode CreateSharedBitmap , la cible de rendu doit utiliser le rendu logiciel. Pour forcer une cible de rendu à utiliser le rendu logiciel, définissez sur D2D1_RENDER_TARGET_TYPE_SOFTWARE le champ de type de la structure D2D1_RENDER_TARGET_PROPERTIES que vous utilisez pour créer la cible de rendu. Pour case activée si une cible de rendu existante utilise le rendu logiciel, utilisez la méthode IsSupported.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7, Windows Vista avec SP2 et Mise à jour de plateforme pour Windows Vista [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008 R2, Windows Server 2008 avec SP2 et Platform Update pour Windows Server 2008 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête d2d1.h
Bibliothèque D2d1.lib
DLL D2d1.dll

Voir aussi

Vue d’ensemble de l’interopérabilité entre Direct2D et Direct3D

ID2D1RenderTarget

IDXGISurface

IWICBitmapLock

Vue d’ensemble des ressources

Formats de pixel et modes alpha pris en charge