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 |