структура DXGK_GDIARG_BITBLT (d3dkmddi.h)
Структура DXGK_GDIARG_BITBLT описывает характеристики аппаратного ускорения GDI передачи бит-блоков (bitblt) без растяжения.
Синтаксис
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 (include D3dkmddi.h) |