Поделиться через


Метод IDirectDrawSurface7::Blt (ddraw.h)

Выполняет передачу битового блока (bitblt). Этот метод не поддерживает z-буферизацию или альфа-смешивание во время операций bitblt.

Синтаксис

HRESULT Blt(
  [in] LPRECT               unnamedParam1,
  [in] LPDIRECTDRAWSURFACE7 unnamedParam2,
  [in] LPRECT               unnamedParam3,
  [in] DWORD                unnamedParam4,
  [in] LPDDBLTFX            unnamedParam5
);

Параметры

[in] unnamedParam1

Указатель на структуру RECT , определяющую верхнюю левую и нижнюю правые точки прямоугольника, в которую нужно выполнить бит на целевой поверхности. Если этот параметр имеет значение NULL, используется вся область назначения.

[in] unnamedParam2

Указатель на интерфейс IDirectDrawSurface7 для объекта DirectDrawSurface, который является источником bitblt.

[in] unnamedParam3

Указатель на структуру RECT , определяющую верхнюю левую и нижнюю правые точки прямоугольника для bitblt на исходной поверхности. Если этот параметр имеет значение NULL, используется вся исходная поверхность.

[in] unnamedParam4

Сочетание флагов, которые определяют допустимые члены связанной структуры DDBLTFX , указывают сведения о цветовом ключе или запрашивают специальное поведение метода . Определены следующие флаги:

Флаги проверки

DDBLT_COLORFILL

Использует элемент dwFillColor структуры DDBLTFX в качестве цвета RGB, заполняющего прямоугольник назначения на целевой поверхности.

DDBLT_DDFX

Использует элемент dwDDFX структуры DDBLTFX , чтобы указать эффекты, которые будут использоваться для этого bitblt.

DDBLT_DDROPS

Использует элемент dwDDROP структуры DDBLTFX для указания растровых операций (ROPS), которые не являются частью API Win32.

DDBLT_DEPTHFILL

Использует элемент dwFillDepth структуры DDBLTFX в качестве значения глубины, с помощью которого заполняется прямоугольник назначения на целевой поверхности z-буфера.

DDBLT_KEYDESTOVERRIDE

Использует элемент ddckDestColorkey структуры DDBLTFX в качестве ключа цвета для целевой поверхности.

DDBLT_KEYSRCOVERRIDE

Использует элемент ddckSrcColorkey структуры DDBLTFX в качестве ключа цвета для исходной поверхности.

DDBLT_ROP

Использует член dwROP структуры DDBLTFX для ROP для этого bitblt. Эти ROP совпадают с теми, которые определены в API Win32.

DDBLT_ROTATIONANGLE

Использует элемент dwRotationAngle структуры DDBLTFX в качестве угла поворота (указанного в 1/100 градуса) для поверхности.

Флаги цветовой клавиши

DDBLT_KEYDEST

Использует цветной ключ, связанный с областью назначения.

DDBLT_KEYSRC

Использует цветной ключ, связанный с исходной поверхностью.

Флаги поведения

DDBLT_ASYNC

Выполняет этот bitblt асинхронно через оборудование FIFO в полученном порядке. Если в оборудовании FIFO нет места, вызов завершается ошибкой.

DDBLT_DONOTWAIT

Возвращает без битового разбиения, а также возвращает DDERR_WASSTILLDRAWING, если bitbltter занят.

DDBLT_WAIT

Откладывает DDERR_WASSTILLDRAWING возвращаемое значение, если bitbltter занят, и возвращается, как только bitblt можно будет настроить или возникнет другая ошибка.

Устаревшие и неподдерживаемые флаги

Все значения флагов DDBLT_ALPHA

В настоящий момент не реализовано.

Все значения флагов DDBLT_ZBUFFER

В настоящее время этот метод не поддерживает операции bitblt с поддержкой Z. Ни один из флагов, начинающегося с "DDBLT_ZBUFFER", не поддерживается.

[in] unnamedParam5

Указатель на структуру DDBLTFX для bitblt.

Возвращаемое значение

Если метод выполнен успешно, возвращаемое значение будет DD_OK.

В случае сбоя метод может вернуть одно из следующих значений ошибки:

  • DDERR_GENERIC
  • DDERR_INVALIDCLIPLIST
  • DDERR_INVALIDOBJECT
  • DDERR_INVALIDPARAMS
  • DDERR_INVALIDRECT
  • DDERR_NOALPHAHW
  • DDERR_NOBLTHW
  • DDERR_NOCLIPLIST
  • DDERR_NODDROPSHW
  • DDERR_NOMIRRORHW
  • DDERR_NORASTEROPHW
  • DDERR_NOROTATIONHW
  • DDERR_NOSTRETCHHW
  • DDERR_NOZBUFFERHW
  • DDERR_SURFACEBUSY
  • DDERR_SURFACELOST
  • DDERR_UNSUPPORTED
  • DDERR_WASSTILLDRAWING

Комментарии

Blt может выполнять синхронные или асинхронные битовые разряды (последнее поведение по умолчанию). Эти битовые разряды могут происходить от памяти дисплея до отображаемой памяти, от памяти дисплея к системной памяти, от системной памяти к отображаемой памяти или от системной памяти к системной памяти. Битовые фрагменты можно выполнять с помощью исходных и целевых цветов. Произвольное растягивание или сжатие выполняется, если исходный и целевой прямоугольники имеют разный размер.

Как правило, Blt возвращается немедленно с ошибкой, если bitbltter занят и bitblt не удалось настроить. Укажите флаг DDBLT_WAIT для запроса синхронного bitblt. При включении флага DDBLT_WAIT Blt ожидает настройки bitblt или другой ошибки, прежде чем он вернется.

Структуры RECT определяются таким образом, чтобы правый и нижний члены были эксклюзивными, поэтому правое минус левое равно ширине прямоугольника, а не на 1 меньше ширины.

Требования

Требование Значение
Целевая платформа Windows
Header ddraw.h
Библиотека Ddraw.lib
DLL Ddraw.dll

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

IDirectDrawSurface7