DXGK_GDIARG_ALPHABLEND Struktur (d3dkmddi.h)

Die DXGK_GDIARG_ALPHABLEND-Struktur beschreibt die Merkmale eines hardwarebeschleunigten GDI-Alpha-Blend-Vorgangs.

Syntax

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;

Member

[in] SrcRect

Eine RECT-Struktur , die den zu kopierenden rechteckigen Bereich definiert. Dieses Quellrechteck wird im Koordinatensystem der Quelloberfläche angegeben und durch zwei Punkte definiert: oben links und unten rechts. Die beiden Punkte, die das Rechteck definieren, sind immer gut sortiert. Dieses Rechteck überschreitet nie die Grenzen der Quelloberfläche, sodass es nie die Quelloberfläche überragt. Dieses Rechteck wird dem von DstRect definierten Zielrechteck zugeordnet. Weitere Informationen finden Sie unter Hinweise.

[in] DstRect

Eine RECT-Struktur , die den zu ändernden rechteckigen Bereich definiert. Dieses Rechteck wird im Koordinatensystem der Zieloberfläche angegeben und durch zwei Punkte definiert: links oben und unten rechts. Das Rechteck ist unten rechts exklusiv; Das heißt, die unteren und rechten Ränder sind kein Teil der Bitblockübertragung. Die beiden Punkte, die das Rechteck definieren, sind immer gut sortiert.

Das durch DstRect definierte Zielrechteck kann die Grenzen der Zieloberfläche überschreiten, subrechtlich aber nicht. Darüber hinaus wird garantiert, dass alle Untergeordneten Rechtecke in die Zieloberfläche passen. Unterrechtecke können durch ein umgebendes Rechteck, das kleiner als das Zielrechteck ist, weiter eingeschränkt werden.

[in] SrcAllocationIndex

Ein Index des Elements in der Zuordnungsliste, der die Zuordnung angibt, auf die vom SrcRect-Quellrechteck verwiesen wird.

[in] DstAllocationIndex

Ein Index des Elements in der Zuordnungsliste, der die Zuordnung angibt, auf die vom DstRect-Zielrechteck verwiesen wird.

[in] NumSubRects

Die Anzahl der Teilrechtecke im Zieloberflächenbereich, der durch das DstRect-Zielrechteck begrenzt wird.

[in] pSubRects

Ein Zeiger auf die Unterrechtecke im Zieloberflächenbereich.

[in] SourceConstantAlpha

Der konstante Mischfaktor, der auf die gesamte Quelloberfläche angewendet werden soll. Dieser Wert liegt im Bereich von [0,255], wobei 0 vollständig transparent und 255 vollständig undurchsichtig ist.

[in] SourceHasAlpha

Definiert, ob für die Oberfläche ein Alphakanal angenommen wird. Bei TRUE wird davon ausgegangen, dass die Oberfläche über einen Alphakanal verfügt. andernfalls ist der Wert FALSE.

[in] SrcPitch

Der Pitch der Quelloberfläche in Bytes.

Hinweise

Wenn ein Bitblt-Vorgang (Stretch Bit-Block-Übertragung) erforderlich ist, werden die x- und y-Dehnungsverhältnisse als das Verhältnis der x- und y-Größen der DstRect - und SrcRect-Member berechnet, und der Stretchvorgang wird so fortgesetzt, als ob der COLORONCOLOR-Wert in *Wingdi.h festgelegt ist. Bei einer verkleinernden Bitblockübertragung sollten genügend Pixel ignoriert werden, damit Pixel nicht kombiniert werden müssen. Bei einer gestreckten Bitblockübertragung sollten Pixel repliziert werden.

Wenn Unterrechtecke in den Quelloberflächenraum transformiert werden, wird das Ergebnis garantiert innerhalb der Quelloberfläche angezeigt. Die Transformation der Koordinaten eines Unterrechtecks auf der Zieloberfläche in Koordinaten auf der Quelloberfläche wird durch die folgenden Formeln definiert:

  • (Xd, Yd) ist ein Punkt innerhalb des Unterrechtecks
  • (Xs, Ys) ist ein Punkt innerhalb des Quellrechtecks
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>

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7
Kopfzeile d3dkmddi.h (einschließlich D3dkmddi.h)

Weitere Informationen

RECT