функция обратного вызова 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 и hDstResourceD3DDDIARG_BLT указывать дескрипторы для одного ресурса).
- Прямоугольники источника и назначения перекрываются (то есть координаты структур RECT в элементах SrcRect и DstRect D3DDDIARG_BLT перекрываются).
Драйвер отображения пользовательского режима должен поддерживать цветовые клавиши только в форматах, которые были представлены до Microsoft DirectX 8.0. Для форматов, которые были представлены в средах выполнения DirectX 8.0 и более поздних версий, поддержка цветовых ключей не требуется.
Тип выполняемого bitblt указывается с помощью флагов битового поля, указанных в элементе FlagsD3DDDIARG_BLT. Биты видеопамять в видеопамять могут включать в себя цветовые клавиши, растяжение, зеркальное отображение и преобразование формата линейного преобразования в sRGB. Биты системной памяти в видеопамять могут включать преобразование формата растяжения и линейного преобразования в sRGB; однако эти типы бит-объектов никогда не включают зеркальное отображение или выделение цветов. Все биты видеопамяти в системную память и биты системной памяти в системной памяти являются только прямыми копиями; то есть эти типы бит-шрифтов никогда не включают растяжение, зеркальное отображение, выделение цветов или преобразование формата линейного преобразования в sRGB. Дополнительные сведения о формате sRGB см. на веб-сайте sRGB .
Дополнительные сведения о правилах, которым должна следовать функция Blt при преобразовании значений трафарета глубины, см. в разделе Копирование Depth-Stencil значений.
Среда выполнения Direct3D может вызывать функцию Blt драйвера отображения пользовательского режима, чтобы скопировать содержимое любого исходного типа поверхности (например, неэкранный тип, тип рендеринга или тип текстуры) в любой другой тип поверхности назначения.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows Vista и более поздних версиях операционных систем Windows. |
Целевая платформа | Персональный компьютер |
Верхняя часть | d3dumddi.h (включая D3dumddi.h) |