структура 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) |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по