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


структура DD_BLTDATA (ddrawint.h)

Структура DD_BLTDATA содержит сведения, относящиеся к драйверу для передачи битовых блоков.

Синтаксис

typedef struct _DD_BLTDATA {
  PDD_DIRECTDRAW_GLOBAL lpDD;
  PDD_SURFACE_LOCAL     lpDDDestSurface;
  RECTL                 rDest;
  PDD_SURFACE_LOCAL     lpDDSrcSurface;
  RECTL                 rSrc;
  DWORD                 dwFlags;
  DWORD                 dwROPFlags;
  DDBLTFX               bltFX;
  HRESULT               ddRVal;
  VOID                  *Blt;
  BOOL                  IsClipped;
  RECTL                 rOrigDest;
  RECTL                 rOrigSrc;
  DWORD                 dwRectCnt;
  LPRECT                prDestRects;
  DWORD                 dwAFlags;
  DDARGB                ddargbScaleFactors;
} *PDD_BLTDATA, DD_BLTDATA;

Члены

lpDD

Указывает на структуру DD_DIRECTDRAW_GLOBAL , описывающую устройство драйвера.

lpDDDestSurface

Указывает на DD_SURFACE_LOCAL структуру, описывающую поверхность, на которой выполняется перерез.

rDest

lpDDSrcSurface

Указывает на структуру DD_SURFACE_LOCAL, описывающую исходную поверхность.

rSrc

dwFlags

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

Flag Значение
DDBLT_ASYNC Выполните это асинхронное выполнение через FIFO в полученном порядке. Если в оборудовании FIFO нет места, драйвер должен завершить вызов и немедленно вернуться.
DDBLT_COLORFILL Используйте элемент dwFillColor в структуре DDBLTFX (определенной в документации по пакету SDK Microsoft DirectDraw) в качестве цвета RGB для заполнения прямоугольника назначения на целевой поверхности.
DDBLT_DDFX Используйте член dwDDFX в структуре DDBLTFX (определенной в документации по пакету SDK DirectDraw), чтобы определить эффекты, которые следует использовать для заливки.
DDBLT_DDROPS Этот флаг зарезервирован для использования системой и должен игнорироваться драйвером. Драйвер также должен игнорировать член dwDDROPS структуры DDBLTFX.
DDBLT_EXTENDED_FLAGS
Только Microsoft DirectX 9.0 и более поздних версий.
Задается средой выполнения, чтобы драйвер переосмыслить определенные флаги в dwFlags из их значений в DirectX 8.1 и более ранних версиях. Среда выполнения объединяет DDBLT_EXTENDED_FLAGS с флагами DDBLT_Xxx , используя побитовое или для создания флагов DDBLT_EXTENDED_Xxx .
DDBLT_EXTENDED_LINEAR_CONTENT
Только Microsoft DirectX 9.0 и более поздних версий.
Создается с помощью побитового или сочетания DDBLT_EXTENDED_FLAGS и бита 0x00000004.
Указывает, что исходная поверхность содержит содержимое в линейном цветовом пространстве. Затем драйвер может выполнить гамма-исправление 2.2 (sRGB) в цветовом пространстве рабочего стола в рамках blt.
DDBLT_EXTENDED_PRESENTATION_STRETCHFACTOR
Только Microsoft DirectX 9.0 и более поздних версий.
Только операционные системы на основе NT.
Создается с помощью побитового сочетания DDBLT_EXTENDED_FLAGS и бита 0x00000010.
Задайте значение , если среда выполнения впоследствии использует флаги DDBLT_PRESENTATION и DDBLT_LAST_PRESENTATION для запроса ряда операций растяжения-блицировать из-за вызова Present приложением.
Оповещает драйвер обо всех неускользитых прямоугольных областях источника и назначения, прежде чем драйвер получит фактические подпрягаемые области для разрезов. Таким образом, драйвер может вычислить и зафиксировать коэффициент растяжения для всех последующих разрезов до и включительно с установленным флагом DDBLT_LAST_PRESENTATION. Однако, когда драйвер получает разрез с установленным флагом DDBLT_EXTENDED_PRESENTATION_STRETCHFACTOR, драйвер не должен использовать эти нескользимые прямоугольные области для выполнения каких-либо фактических разрезов.
После того как драйвер завершит окончательный прорезь с установленным флагом DDBLT_LAST_PRESENTATION, драйвер должен очистить запись растяжения, чтобы предотвратить помехи при последующих прорезях.
.
DDBLT_KEYDESTOVERRIDE Используйте элемент dckDestColorkey в структуре DDBLTFX (определенной в документации по пакету SDK DirectDraw) в качестве ключа цвета для области назначения. Если переопределение не задано, dckDestColorkey не содержит ключ цвета. Драйвер должен протестировать саму поверхность.
DDBLT_KEYSRCOVERRIDE Используйте элемент dckSrcColorkey в структуре DDBLTFX (определенной в документации по пакету SDK DirectDraw) в качестве ключа цвета для исходной поверхности. Если переопределение не задано, dckDestColorkey не содержит ключ цвета. Драйвер должен протестировать саму поверхность.
DDBLT_LAST_PRESENTATION
Только DirectX 8.0 и более поздних версий.
Задает значение , если среда выполнения запрашивает окончательную операцию прорези из-за вызова Present приложением.
DDBLT_PRESENTATION
Только DirectX 8.0 и более поздних версий.
Задает значение , если среда выполнения запрашивает операцию прорези из-за вызова Present приложением.
DDBLT_ROP Используйте член dwROP в структуре DDBLTFX (определенной в документации по пакету SDK DirectDraw) для растровой операции для этой щели. В настоящее время драйверу передается только ROP SRCCOPY. Эта ROP аналогична той, которая определена в API Win32. Дополнительные сведения см. в документации по Microsoft Windows SDK.
DDBLT_ROTATIONANGLE Этот флаг не поддерживается в Windows 2000 и более поздних версиях и должен игнорироваться драйвером.
DDBLT_WAIT Не возвращайте сразу с сообщением DDERR_WASSTILLDRAWING, если blitter занят. Дождитесь, пока не удастся настроить блиц или возникнет другая ошибка.

dwROPFlags

Не используется в Windows 2000 и более поздних версиях и должен игнорироваться драйвером.

bltFX

#########

#######

ddRVal

Указывает расположение, в которое драйвер записывает возвращаемое значение обратного вызова DdBlt . Код возврата DD_OK указывает на успешное выполнение. Дополнительные сведения см. в разделе Возвращаемые значения для DirectDraw.

Blt

Используется API DirectDraw и не должен заполняться драйвером.

IsClipped

Указывает, является ли это обрезанным разрезом. В Windows 2000 и более поздних версиях этот элемент всегда имеет значение FALSE, указывая, что щель не скольгнута.

rOrigDest

Не применяется для Windows 2000 и более поздних версий. Задает структуру RECTL, определяющую нескользимый прямоугольник назначения. Этот элемент действителен, только если isClipped имеет значение TRUE.

rOrigSrc

Не применяется для Windows 2000 и более поздних версий. Задает структуру RECTL, которая определяет нескользимый исходный прямоугольник. Этот элемент действителен, только если isClipped имеет значение TRUE.

dwRectCnt

Не применяется для Windows 2000 и более поздних версий.Указывает количество прямоугольников назначения, на которые указывает prDestRects . Этот элемент действителен, только если isClipped имеет значение TRUE.

prDestRects

Не применяется для Windows 2000 и более поздних версий. Указывает на массив структур RECTL, описывающих прямоугольники назначения. Этот элемент действителен, только если isClipped имеет значение TRUE.

dwAFlags

Неиспользуемые и должны игнорироваться драйвером.

ddargbScaleFactors

Коэффициенты масштабирования ARGB (AlphaBlt)

Комментарии

Дополнительные сведения о флагах DDBLT_PRESENTATION и DDBLT_LAST_PRESENTATION см. в разделе Presentation.

Требования

Требование Значение
Заголовок ddrawint.h (включая Winddi.h)

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

DdBlt