Метод ID2D1RenderTarget::CreateSharedBitmap (d2d1.h)
Создает ID2D1Bitmap , данные которого совместно используются с другим ресурсом.
Синтаксис
HRESULT CreateSharedBitmap(
REFIID riid,
[in, out] void *data,
[in, optional] const D2D1_BITMAP_PROPERTIES *bitmapProperties,
[out] ID2D1Bitmap **bitmap
);
Параметры
riid
Тип: REFIID
Идентификатор интерфейса объекта, предоставляющего исходные данные.
[in, out] data
Тип: void*
ID2D1Bitmap, IDXGISurface или IWICBitmapLock, содержащий данные для совместного использования с новым ID2D1Bitmap. Дополнительные сведения см. в разделе «Примечания».
[in, optional] bitmapProperties
Тип: D2D1_BITMAP_PROPERTIES*
Формат пикселей и DPI растрового изображения для создания . DXGI_FORMAT часть формата пикселей должна соответствовать DXGI_FORMATданных, иначе метод завершится ошибкой, но альфа-режимы не должны совпадать. Чтобы предотвратить несоответствие, можно передать значение NULL или значение, полученное из вспомогательной функции D2D1::P ixelFormat . Параметры DPI не обязательно должны соответствовать параметрам данных. Если и dpiX , и dpiY имеют значение 0,0f, используется значение DPI целевого объекта отрисовки.
[out] bitmap
Тип: ID2D1Bitmap**
При возврате этим методом содержит адрес указателя на новое растровое изображение. Этот параметр передается неинициализированным.
Возвращаемое значение
Тип: HRESULT
Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Метод CreateSharedBitmap полезен для эффективного повторного использования данных растрового изображения, а также может использоваться для обеспечения взаимодействия с Direct3D.
Совместное использование ID2D1Bitmap
Передав id2D1Bitmap , созданный целевым объектом отрисовки, совместимым с ресурсами, вы можете поделиться растровым изображением с этим целевым объектом отрисовки; исходный ID2D1Bitmap и новый ID2D1Bitmap , созданный этим методом, будут указывать на одни и те же данные растрового рисунка. Дополнительные сведения о том, когда можно совместно использовать целевые ресурсы отрисовки, см. в разделе Общий доступ к целевым ресурсам рендеринга в обзоре ресурсов.Этот метод также можно использовать для повторного интерпретации данных существующего растрового изображения и указания нового режима DPI или альфа-канала. Например, в случае с точечным атласом ID2D1Bitmap может содержать несколько вложенных изображений, каждое из которых должно быть отрисовано с помощью разных D2D1_ALPHA_MODE (D2D1_ALPHA_MODE_PREMULTIPLIED или D2D1_ALPHA_MODE_IGNORE). Метод CreateSharedBitmap можно использовать для повторной интерпретации растрового изображения с помощью требуемого альфа-режима без загрузки отдельной копии растрового рисунка в память.
Совместное использование IDXGISurface
При использовании целевого объекта отрисовки поверхности DXGI (объекта ID2D1RenderTarget , созданного методом CreateDxgiSurfaceRenderTarget ) можно передать поверхность IDXGISurface методу CreateSharedBitmap , чтобы совместно использовать видеопамять с Direct3D и управлять содержимым Direct3D как ID2D1Bitmap. Как описано в обзоре ресурсов, целевой объект отрисовки и IDXGISurface должны использовать одно и то же устройство Direct3D.
Обратите также внимание, что IDXGISurface должен использовать один из поддерживаемых форматов пикселей и альфа-режимов, описанных в разделах Поддерживаемые форматы пикселей и Альфа-режимы.
Дополнительные сведения о взаимодействии с Direct3D см. в статье Общие сведения о взаимодействии Direct2D и Direct3D.
Предоставление общего доступа к IWICBitmapLock
IWICBitmapLock хранит содержимое растрового изображения WIC и защищает его от одновременных обращений. Передав IWICBitmapLock в метод CreateSharedBitmap , можно создать ID2D1Bitmap , указывающий на данные растрового изображения, уже хранящиеся в IWICBitmapLock.Чтобы использовать IWICBitmapLock с методом CreateSharedBitmap , целевой объект отрисовки должен использовать программную отрисовку. Чтобы принудить целевой объект отрисовки использовать программную отрисовку, задайте значение D2D1_RENDER_TARGET_TYPE_SOFTWARE поле типаструктуры D2D1_RENDER_TARGET_PROPERTIES , используемой для создания целевого объекта отрисовки. Чтобы проверка, использует ли существующий целевой объект отрисовки программное обеспечение, используйте метод IsSupported.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7, Windows Vista с пакетом обновления 2 (SP2) и обновление платформы для Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2) и Обновление платформы для Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | d2d1.h |
Библиотека | D2d1.lib |
DLL | D2d1.dll |