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