DXGK_GDIARG_STRETCHBLT Struktur (d3dkmddi.h)
Die DXGK_GDIARG_STRETCHBLT Struktur beschreibt die Merkmale eines hardwarebeschleunigten Stretch-Bitblock-Übertragungsvorgangs (Bitblt).
Syntax
typedef struct _DXGK_GDIARG_STRETCHBLT {
[in] RECT SrcRect;
[in] RECT DstRect;
[in] UINT DstAllocationIndex;
[in] UINT SrcAllocationIndex;
UINT NumSubRects;
[in] RECT *pSubRects;
union {
struct {
UINT Mode : 16;
UINT MirrorX : 1;
UINT MirrorY : 1;
};
[in] UINT Flags;
};
[in] UINT SrcPitch;
} DXGK_GDIARG_STRETCHBLT;
Angehörige
[in] SrcRect
Eine RECT- Struktur, die den zu kopierenden rechteckigen Bereich definiert. Dieses Rechteck 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.
Das Quellrechteck überschreitet niemals die Grenzen der Quelloberfläche, sodass die Quelloberfläche nie überragt wird.
Dieses Rechteck wird dem Zielrechteck zugeordnet, das durch DstRectdefiniert wird.
Weitere Informationen finden Sie im Abschnitt "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: oben links und unten rechts. Das Rechteck ist ausschließlich unten rechts; d. h. ihre 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, aber Unterrechtecke können nicht. Darüber hinaus werden alle Unterrechtecke garantiert in die Zieloberfläche passen. Unterrechtecke können weiter durch ein umgebendes Rechteck eingeschränkt werden, das kleiner als das Zielrechteck ist.
Weitere Informationen finden Sie im Abschnitt "Hinweise".
[in] DstAllocationIndex
Ein Index des Elements in der Zuordnungsliste, der die Zuordnung angibt, auf die vom DstRect Zielrechteck verwiesen wird.
[in] SrcAllocationIndex
Ein Index des Elements in der Zuordnungsliste, das die Zuordnung angibt, auf die vom Quellrechteck SrcRect verwiesen wird.
NumSubRects
Die Anzahl der Unterrechtecke im Zieloberflächenbereich, die durch das DstRect- Zielrechteck begrenzt ist.
[in] pSubRects
Ein Zeiger auf die Unterrechtecke im Zieloberflächenbereich, der durch das DstRect Zielrechteck begrenzt ist.
[in] Mode
Gibt an, wie Quellpixel kombiniert werden, um Ausgabepixel zu erzeugen, basierend darauf, ob die folgenden Werte, die in Wingdi.h definiert sind, festgelegt werden:
Wert | Bedeutung |
---|---|
BLACKONWHITE | Bei einer verkleinerten Bitblockübertragung sollten Pixel mit einem booleschen AND-Vorgang kombiniert werden. Bei einer dehnenden Bitblockübertragung sollten Pixel repliziert werden. |
WHITEONBLACK | Bei einer verkleinerten Bitblockübertragung sollten Pixel mit einem booleschen OR-Vorgang kombiniert werden. Bei einer dehnenden Bitblockübertragung sollten Pixel repliziert werden. |
Dieser Vorgangstyp wird nur verarbeitet, wenn der Treiber den SupportMonoStretchBltModes Member in der DXGK_PRESENTATIONCAPS-Struktur festgelegt hat.
[in] MirrorX
Gibt an, ob die Stretch-Bitblockübertragung im Spiegelmodus in der xdirection ausgeführt wird. Dieser Vorgangstyp wird nur verarbeitet, wenn der Wert MirrorX- ungleich Null ist und der Treiber den SupportMirrorStretchBlt Member in der DXGK_PRESENTATIONCAPS Struktur festgelegt hat.
[in] MirrorY
Gibt an, ob die Stretch-Bitblockübertragung im Spiegelmodus in y-Richtung ausgeführt wird. Dieser Vorgangstyp wird nur verarbeitet, wenn der Wert von MirrorY ungleich Null ist und der Treiber den SupportMirrorStretchBlt Member in der DXGK_PRESENTATIONCAPS-Struktur festgelegt hat.
[in] Flags
Optionaler UINT-Wert, der zum Debuggen von Treibercode verwendet werden kann.
[in] SrcPitch
Die Neigung der Quelloberfläche in Byte.
Bemerkungen
Die x- und y-Streckungsverhältnisse werden bzw. als Verhältnis der x- und y-Größen der DstRect- und SrcRect--Member berechnet.
Der HALFTONE-Modus und STRETCH_HALFTONE Modi, die in Wingdi.h- definiert sind, werden nie im Modus Member festgelegt. Der COLORONCOLOR-Modus kann im DXGK_GDIARG_ALPHABLEND und DXGK_GDIARG_TRANSPARENTBLT Strukturen festgelegt werden.
Wenn Unterrechtecke in den Quelloberflächenbereich transformiert werden, ist das Ergebnis garantiert innerhalb der Quelloberfläche. Die Transformation der Koordinaten eines Unterrechtecks in der Zieloberfläche in Koordinaten in der Quelloberfläche wird durch die folgenden Formeln definiert, wobei
- (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)
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 7 |
Header- | d3dkmddi.h (einschließlich D3dkmddi.h) |