структура DXGK_GDIARG_BITBLT (d3dkmddi.h)

Структура DXGK_GDIARG_BITBLT описывает характеристики аппаратного ускорения передачи битовых блоков (bitblt) GDI без растяжения.

Синтаксис

typedef struct _DXGK_GDIARG_BITBLT {
  [in] RECT SrcRect;
  [in] RECT DstRect;
       UINT SrcAllocationIndex;
       UINT DstAllocationIndex;
       UINT NumSubRects;
       RECT *pSubRects;
       WORD Rop;
       WORD Rop3;
       UINT SrcPitch;
       UINT DstPitch;
} DXGK_GDIARG_BITBLT;

Члены

[in] SrcRect

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

Исходный прямоугольник может превышать границы исходной поверхности.

Этот прямоугольник сопоставляется с целевым прямоугольником, определенным DstRect. SrcRect используется для преобразования вложенных прямоугольников из исходного пространства в целевое пространство.

Дополнительные сведения см. в разделе «Примечания».

[in] DstRect

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

Прямоугольник назначения, определенный DstRect, может превышать границы целевой поверхности, но вложенные прямоугольники не могут. Кроме того, все вложенные прямоугольники гарантированно помещаются внутри целевой поверхности. Вложенные прямоугольники могут быть дополнительно ограничены ограничивающим прямоугольником, который меньше целевого прямоугольника.

Дополнительные сведения см. в разделе «Примечания».

SrcAllocationIndex

[in] Индекс элемента в списке выделения, указывающий выделение, на которое ссылается исходный прямоугольник SrcRect .

DstAllocationIndex

[in] Индекс элемента в списке выделения, указывающий выделение, на которое ссылается прямоугольник назначения DstRect .

NumSubRects

[in] Количество вложенных прямоугольников в пространстве поверхности назначения, ограниченном прямоугольником назначения DstRect .

pSubRects

[in] Указатель на вложенные прямоугольники в пространстве поверхности назначения, ограниченном прямоугольником назначения DstRect .

Rop

[in] 8-разрядное значение, указывающее растровую операцию GDI (ROP), определяемую константными значениями перечисления DXGK_GDIROP_BITBLT .

Rop3

[in] 8-разрядное значение, указывающее тернарную растровую операцию GDI (ROP3), которая объединяет кисть, исходный растровый рисунок и целевой растровый рисунок в одном из 256 возможных сочетаний. Этот тип растровой операции будет обрабатываться только в том случае, если драйвер задал элемент SupportAllBltRops в структуре DXGK_PRESENTATIONCAPS .

SrcPitch

[in] Шаг исходной поверхности в байтах. Дополнительные сведения об использовании тона см. в разделе "Примечания".

DstPitch

[in] Шаг целевой поверхности в байтах. Дополнительные сведения об использовании тона см. в разделе "Примечания".

Комментарии

Значения шагов SrcPitch и DstPitch должны использоваться для определения расположения байтов прямоугольников SrcRect и DstRect соответственно для следующих выделений типа D3DKMDT_GDISURFACETYPE:

D3DKMDT_GDISURFACE_STAGING_CPUVISIBLE

D3DKMDT_GDISURFACE_EXISTINGSYSMEM

Шаг следует игнорировать для других типов выделения.

Шаг гарантированно выравнивается при передаче битовых блоков в соответствии с элементом AlignmentShiftструктуры DXGK_PRESENTATIONCAPS (т. е. DXGK_DRIVERCAPS. PresentationCaps.AlignmentShift).

Если прямоугольник определяется двумя пикселями в координатах (слева, сверху) и (справа, снизу), адрес первого пикселя будет следующим:

Allocation.BaseAddress + (top * Pitch) + (left * 4)

Адрес последнего пикселя прямоугольника:

Allocation.BaseAddress + ((bottom - 1) * Pitch) + ((right - 1) * 4)

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

<SrcSubRect.left = SubRect.left - DstRect.left + SrcRect.left;
SrcSubRect.right = SubRect.right - DstRect.left + SrcRect.left;
SrcSubRect.top = SubRect.top - DstRect.top + SrcRect.top;
SrcSubRect.bottom = SubRect.bottom - DstRect.top + SrcRect.top;

Требования

Требование Значение
Минимальная версия клиента Windows 7
Верхняя часть d3dkmddi.h (включая D3dkmddi.h)

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

D3DKMDT_GDISURFACETYPE

DXGK_DRIVERCAPS

DXGK_GDIROP_BITBLT

DXGK_PRESENTATIONCAPS

RECT