функция обратного вызова PFND3DDDI_BLT (d3dumddi.h)
Функция Blt копирует содержимое исходной поверхности в целевую область.
Синтаксис
PFND3DDDI_BLT Pfnd3dddiBlt;
HRESULT Pfnd3dddiBlt(
HANDLE hDevice,
const D3DDDIARG_BLT *unnamedParam2
)
{...}
Параметры
hDevice
Дескриптор устройства отображения (графический контекст).
unnamedParam2
pData [in]
Указатель на структуру D3DDDIARG_BLT, описывающую параметры передачи битового блока (bitblt).
Возвращаемое значение
Blt возвращает одно из следующих значений:
код возврата | описание |
---|---|
S_OK | Bitblt для ресурса успешно выполнен. |
E_OUTOFMEMORY | Blt не удалось выделить необходимую память для завершения. |
Замечания
Среда выполнения Microsoft Direct3D вызывает функцию драйвера в режиме пользователя Blt, чтобы скопировать содержимое исходной поверхности в целевую область. После сопоставления ссылок поверхности на ссылки на выделение драйвер отображения в пользовательском режиме должен выдавать соответствующие аппаратные команды. Если исходное или целевое выделение находится в системной памяти, драйвер отображения в пользовательском режиме может потребоваться для синхронизации (то есть вызовите функцию pfnRenderCb), если выдающийся аппаратный поток команд содержит ссылки на выделение системной памяти. Если исходные и целевые выделения находятся в системной памяти, драйвер должен синхронизироваться по мере необходимости, но не должен копировать содержимое исходной поверхности. Среда выполнения Direct3D копирует содержимое после вызова pfnRenderCb.
Драйвер отображения в пользовательском режиме должен обрабатывать следующие условия, которые могут возникнуть во время операции копирования:
- Конечные и исходные поверхности являются частью одного ресурса (т. е. hSrcResource и hDstResource членов D3DDDIARG_BLT указывают дескриптор для одного ресурса).
- Прямоугольники источника и назначения перекрываются (т. е. координаты структуры RECT в SrcRect и DstRect элементов D3DDDIARG_BLT перекрываются).
Драйвер отображения в пользовательском режиме должен поддерживать цветовую клавишу только с форматами, которые были представлены до Microsoft DirectX 8.0. Для форматов, представленных в DirectX 8.0 и более поздних средах выполнения, поддержка цветового ключа не требуется.
Тип bitblt, выполняемый, указывается с помощью флагов битового поля, указанных в элементе Flags элемента D3DDDIARG_BLT. В битовые фрагменты памяти видео можно включить преобразование цветового ключа, растяжения, зеркального отображения и преобразования формата линейного в SRGB. Системная память к битам памяти видео может включать преобразование формата stretching и linear-to-sRGB; однако эти типы битблтов никогда не включают зеркальное отображение или цветовую схему. Все видеопамяты для битов памяти системы и системной памяти в системные биты памяти являются прямыми копиями. То есть эти типы битов никогда не включают растягивание, зеркальное отображение, цветовую клавишу или преобразование формата линейного типа в SRGB. Дополнительные сведения о формате sRGB см. на веб-сайте sRGB.
Дополнительные сведения о правилах, которые должна следовать функция Blt при преобразовании значений элементов глубины, см. в копирования значений Depth-Stencil.
Среда выполнения Direct3D может вызывать функцию драйвера отображения в режиме пользователя Blt, чтобы скопировать содержимое любого исходного типа поверхности (например, внеэкранного типа, типа целевого объекта отрисовки или типа текстуры) в любой другой тип области назначения.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно в Windows Vista и более поздних версиях операционных систем Windows. |
целевая платформа | Настольный |
заголовка | d3dumddi.h (include D3dumddi.h) |