функция обратного вызова 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 перекрываются).
Драйвер отображения пользовательского режима должен обрабатывать все операции bitblt в видеопамяти и из нее, включая bitblt из видеопамяти в системную память. Если драйвер отображения пользовательского режима не может использовать графический процессор (GPU) для передачи bitblt из видеопамять в системную память, драйвер отображения пользовательского режима может копировать данные с помощью ЦП.

Драйвер отображения пользовательского режима должен поддерживать цветовые клавиши только в форматах, которые были представлены до 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)

См. также раздел

D3DDDIARG_BLT

D3DDDI_DEVICEFUNCS

pfnRenderCb