Метод 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 |