Método ID2D1RenderTarget::CreateSharedBitmap (d2d1.h)

Crea un objeto ID2D1Bitmap cuyos datos se comparten con otro recurso.

Sintaxis

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

Parámetros

riid

Tipo: REFIID

Identificador de interfaz del objeto que proporciona los datos de origen.

[in, out] data

Tipo: void*

Id2D1Bitmap, IDXGISurface o IWICBitmapLock que contiene los datos que se van a compartir con el nuevo ID2D1Bitmap. Para obtener más información, vea la sección Comentarios.

[in, optional] bitmapProperties

Tipo: D2D1_BITMAP_PROPERTIES*

Formato de píxel y PPP del mapa de bits que se va a crear. La parte DXGI_FORMAT del formato de píxel debe coincidir con el DXGI_FORMAT de datos o se producirá un error en el método, pero los modos alfa no tienen que coincidir. Para evitar una discrepancia, puede pasar NULL o el valor obtenido de la función auxiliar D2D1::P ixelFormat . La configuración de PPP no tiene que coincidir con las de los datos. Si pppX y dpiY son 0,0f, se usa el valor de PPP del destino de representación.

[out] bitmap

Tipo: ID2D1Bitmap**

Cuando este método vuelve, contiene la dirección de un puntero al nuevo mapa de bits. Este parámetro se pasa sin inicializar.

Valor devuelto

Tipo: HRESULT

Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error HRESULT .

Comentarios

El método CreateSharedBitmap es útil para reutilizar eficazmente los datos de mapa de bits y también se puede usar para proporcionar interoperabilidad con Direct3D.

Uso compartido de un objeto ID2D1Bitmap

Al pasar un id2D1Bitmap creado por un destino de representación compatible con el recurso, puede compartir un mapa de bits con ese destino de representación; tanto el ID2D1Bitmap original como el nuevo ID2D1Bitmap creado por este método apuntarán a los mismos datos de mapa de bits. Para obtener más información sobre cuándo se pueden compartir los recursos de destino de representación, consulte la sección Uso compartido de recursos de destino de representación de la información general de recursos.

También puede usar este método para reinterpretar los datos de un mapa de bits existente y especificar un nuevo modo PPP o alfa. Por ejemplo, en el caso de un atlas de mapa de bits, un objeto ID2D1Bitmap puede contener varias sub-imágenes, cada una de las cuales debe representarse con un D2D1_ALPHA_MODE diferente (D2D1_ALPHA_MODE_PREMULTIPLIED o D2D1_ALPHA_MODE_IGNORE). Puede usar el método CreateSharedBitmap para reinterpretar el mapa de bits mediante el modo alfa deseado sin tener que cargar una copia independiente del mapa de bits en la memoria.

Uso compartido de idXGISurface

Cuando se usa un destino de representación de superficie DXGI (un objeto ID2D1RenderTarget creado por el método CreateDxgiSurfaceRenderTarget ), puede pasar una superficie IDXGISurface al método CreateSharedBitmap para compartir memoria de vídeo con Direct3D y manipular el contenido de Direct3D como id2D1Bitmap. Como se describe en Información general de recursos, el destino de representación y IDXGISurface deben usar el mismo dispositivo Direct3D.

Tenga en cuenta también que IDXGISurface debe usar uno de los formatos de píxeles admitidos y modos alfa descritos en Formatos de píxeles admitidos y Modos alfa.

Para obtener más información sobre la interoperabilidad con Direct3D, consulta Introducción a la interoperabilidad de Direct2D y Direct3D.

Uso compartido de un IWICBitmapLock

Un IWICBitmapLock almacena el contenido de un mapa de bits WIC y lo protege de los accesos simultáneos. Al pasar un IWICBitmapLock al método CreateSharedBitmap , puede crear un ID2D1Bitmap que apunte a los datos de mapa de bits ya almacenados en IWICBitmapLock.

Para usar un IWICBitmapLock con el método CreateSharedBitmap , el destino de representación debe usar la representación de software. Para forzar que un destino de representación use la representación de software, establezca en D2D1_RENDER_TARGET_TYPE_SOFTWARE el campo de tipo de la estructura D2D1_RENDER_TARGET_PROPERTIES que se usa para crear el destino de representación. Para comprobar si un destino de representación existente usa la representación de software, use el método IsSupported .

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7, Windows Vista con SP2 y Platform Update para Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 R2, Windows Server 2008 con SP2 y Actualización de plataforma para Windows Server 2008 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado d2d1.h
Library D2d1.lib
Archivo DLL D2d1.dll

Consulte también

Introducción a la interoperabilidad de Direct2D y Direct3D

ID2D1RenderTarget

IDXGISurface

IWICBitmapLock

Introducción a los recursos

Formatos de píxel admitidos y modos alfa