структура DXGK_GDIARG_ALPHABLEND (d3dkmddi.h)
Структура DXGK_GDIARG_ALPHABLEND описывает характеристики операции аппаратного ускорения альфа-смешивания GDI.
Синтаксис
typedef struct _DXGK_GDIARG_ALPHABLEND {
[in] RECT SrcRect;
[in] RECT DstRect;
[in] UINT SrcAllocationIndex;
[in] UINT DstAllocationIndex;
[in] UINT NumSubRects;
[in] RECT *pSubRects;
[in] BYTE SourceConstantAlpha;
[in] BOOLEAN SourceHasAlpha;
[in] UINT SrcPitch;
} DXGK_GDIARG_ALPHABLEND;
Члены
[in] SrcRect
Структура RECT, которая определяет прямоугольную область для копирования. Этот исходный прямоугольник указывается в системе координат исходной поверхности и определяется двумя точками: верхним левым и нижним правым. Два пункта, определяющие прямоугольник, всегда хорошо упорядочены. Этот прямоугольник никогда не превысит границы исходной поверхности, поэтому он никогда не будет перевесить исходную поверхность. Этот прямоугольник сопоставляется с прямоугольником назначения, определенным DstRect. Дополнительные сведения см. в примечаниях.
[in] DstRect
Структура RECT, которая определяет прямоугольную область для изменения. Этот прямоугольник указывается в системе координат целевой поверхности и определяется двумя точками: верхним левым и нижним правым. Прямоугольник является правым нижним правом; То есть его нижние и правые края не являются частью передачи битового блока. Два пункта, определяющие прямоугольник, всегда хорошо упорядочены.
Прямоугольник назначения, определенный DstRect, может превышать границы конечной поверхности, но вложенные прямоугольники не могут. Кроме того, все вложенные прямоугольники гарантированно помещаются внутри целевой поверхности. Вложенные прямоугольники могут быть ограничены дополнительно ограничивающим прямоугольником, который меньше, чем прямоугольник назначения.
[in] SrcAllocationIndex
Индекс элемента в списке выделения, указывающий выделение, на которое ссылается прямоугольник SrcRect исходного прямоугольника.
[in] DstAllocationIndex
Индекс элемента в списке выделения, указывающий выделение, на которое ссылается прямоугольник назначения DstRect назначения.
[in] NumSubRects
Количество вложенных прямоугольников в пространстве конечной поверхности, ограничивающегося прямоугольником DstRect целевом прямоугольнике.
[in] pSubRects
Указатель на вложенные прямоугольники в целевом пространстве поверхности.
[in] SourceConstantAlpha
Коэффициент константного смешения, применяемый ко всей исходной поверхности. Это значение находится в диапазоне [0,255], где 0 является полностью прозрачным и 255 полностью непрозрачным.
[in] SourceHasAlpha
Определяет, имеет ли поверхность альфа-канал. Если TRUE, предполагается, что поверхность имеет альфа-канал; в противном случае значение равно FALSE.
[in] SrcPitch
Шаг исходной поверхности в байтах.
Замечания
Если требуется операция передачи растянутого битового блока (bitblt), коэффициенты x и y stretch вычисляются соответственно в виде соотношений размер ов x и y DstRect и SrcRect элементов, и операция растяжения будет продолжаться, как если бы задано значение COLORONCOLOR в *Wingdi.h. При уменьшении передачи битового блока достаточно пикселей следует игнорировать, чтобы пиксели не должны объединяться. При перемещении растянутого битового блока пиксели должны реплицироваться.
Когда вложенные прямоугольники преобразуются в исходное пространство поверхности, результат гарантированно находится в исходной поверхности. Преобразование координат вложенного прямоугольника в конечной поверхности в координаты исходной поверхности определяется следующими формулами:
- (Xd, Yd) — это точка внутри подстановки
- (Xs, Ys) — это точка внутри исходного прямоугольника
float Ws = SrcRect.right - SrcRect.left;
float Wd = DstRect.right - DstRect.left;
int Xs = round((Xd - DstRect.left + 0.5) * Ws/Wd + SrcRect.left - 0.5)
// OR
int Xs = truncate((Xd - DstRect.left + 0.5) * Ws/Wd + SrcRect.left)
float Hs = SrcRect.bottom - SrcRect.top;
float Hd = DstRect.bottom - DstRect.top;
int Ys = round((Yd - DstRect.top + 0.5) * Hs/Hd + SrcRect.top - 0.5)
//OR
int Ys = truncate((Yd - DstRect.top + 0.5) * Hs/Hd + SrcRect.top)</code></pre>
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 7 |
заголовка | d3dkmddi.h (include D3dkmddi.h) |