DXGK_GDIARG_STRETCHBLT-Struktur (d3dkmddi.h)

Die DXGK_GDIARG_STRETCHBLT-Struktur beschreibt die Merkmale eines GDI-Vorgangs mit hardwarebeschleunigtem Stretch-Bitblocktransfer (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;

Member

[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: links oben und unten rechts. Die beiden Punkte, die das Rechteck definieren, sind immer gut sortiert.

Das Quellrechteck überschreitet niemals die Grenzen der Quelloberfläche und überragt daher nie die Quelloberfläche.

Dieses Rechteck wird dem von DstRect definierten Zielrechteck zugeordnet.

Weitere Informationen finden Sie im Abschnitt mit Hinweisen.

[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, subrechtecke können jedoch nicht verwendet werden. Darüber hinaus passen alle Unterrechtecke garantiert in die Zieloberfläche. Unterrechtecke können durch ein umgebendes Rechteck, das kleiner als das Zielrechteck ist, weiter eingeschränkt werden.

Weitere Informationen finden Sie im Abschnitt mit Hinweisen.

[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, der die Zuordnung angibt, auf die vom SrcRect-Quellrechteck verwiesen wird.

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, der durch das DstRect-Zielrechteck begrenzt wird.

[in] Mode

Gibt an, wie Quellpixel kombiniert werden, um Ausgabepixel zu erzeugen, basierend darauf, ob die folgenden Werte festgelegt sind, die in Wingdi.h definiert sind:

Wert Bedeutung
BLACKONWHITE Bei einer verkleinernden Bitblockübertragung sollten Pixel mit einem booleschen AND-Vorgang kombiniert werden. Bei einer Stretch-Bitblockübertragung sollten Pixel repliziert werden.
WHITEONBLACK Bei einer verkleinernden Bitblockübertragung sollten Pixel mit einem booleschen OR-Vorgang kombiniert werden. Bei einer Stretch-Bitblockübertragung sollten Pixel repliziert werden.

Dieser Vorgangstyp wird nur verarbeitet, wenn der Treiber das Element SupportMonoStretchBltModes in der DXGK_PRESENTATIONCAPS-Struktur festgelegt hat.

[in] MirrorX

Gibt an, ob die Stretch-Bitblockübertragung im Spiegel Modus in der xdirection ausgeführt wird. Dieser Vorgangstyp wird nur verarbeitet, wenn der Wert von 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 Spiegel Modus in y-Richtung ausgeführt wird. Dieser Vorgangstyp wird nur verarbeitet, wenn der Wert von MirrorY ungleich null ist und der Treiber das Element SupportMirrorStretchBlt in der DXGK_PRESENTATIONCAPS-Struktur festgelegt hat.

[in] Flags

Optionaler UINT-Wert, der zum Debuggen von Treibercode verwendet werden kann.

[in] SrcPitch

Die Tonhöhe der Quelloberfläche in Bytes.

Hinweise

Die Stretchverhältnisse x und y werden jeweils als Verhältnis der x- und y-Größen der DstRect - und SrcRect-Elemente berechnet.

Der HALFTONE-Modus und STRETCH_HALFTONE Modi, die in Wingdi.h definiert sind, werden im Moduselement nie festgelegt. Der COLORONCOLOR-Modus kann in den DXGK_GDIARG_ALPHABLEND - und DXGK_GDIARG_TRANSPARENTBLT-Strukturen festgelegt werden.

Wenn Teilrechtecke in den Quelloberflächenbereich transformiert werden, wird das Ergebnis garantiert innerhalb der Quelloberfläche angezeigt. Die Transformation der Koordinaten eines Teilrechtecks auf der Zieloberfläche in Koordinaten auf 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
Unterstützte Mindestversion (Client) Windows 7
Kopfzeile d3dkmddi.h (einschließlich D3dkmddi.h)

Weitere Informationen

DXGK_GDIARG_ALPHABLEND

DXGK_GDIARG_TRANSPARENTBLT

DXGK_PRESENTATIONCAPS

RECT