Share via


EngGradientFill-Funktion (winddi.h)

Die EngGradientFill-Funktion schattiert die angegebenen Grundtypen.

Syntax

ENGAPI BOOL EngGradientFill(
       SURFOBJ   *psoDest,
       CLIPOBJ   *pco,
       XLATEOBJ  *pxlo,
       TRIVERTEX *pVertex,
       ULONG     nVertex,
       PVOID     pMesh,
       ULONG     nMesh,
       RECTL     *prclExtents,
       POINTL    *pptlDitherOrg,
  [in] ULONG     ulMode
);

Parameter

psoDest

Zeiger auf die SURFOBJ-Struktur , die die Oberfläche identifiziert, auf der gezeichnet werden soll.

pco

Zeiger auf eine CLIPOBJ-Struktur . Die CLIPOBJ_Xxx-Dienstroutinen werden bereitgestellt, um den Clipbereich als Eine Reihe von Rechtecken aufzulisten. Diese Enumeration schränkt den Bereich des geänderten Ziels ein. Nach Möglichkeit vereinfacht GDI den Ausschnitt.

pxlo

Zeiger auf eine XLATEOBJ-Struktur . Diese Struktur gibt an, wie Farbindizes zwischen dem 32-bpp-RGB-Format und dem Ziel übersetzt werden sollen. Der Treiber ist für die Konvertierung der Eingabe COLOR16 Farbwerte in RGB verantwortlich.

pVertex

Zeiger auf ein Array von TRIVERTEX-Strukturen, wobei jeder Eintrag Positions- und Farbinformationen enthält. Die TRIVERTEX-Struktur wird in der Microsoft Windows SDK-Dokumentation beschrieben.

nVertex

Gibt die Anzahl der TRIVERTEX-Strukturen im Array an, auf das pVertex zeigt.

pMesh

Zeiger auf ein Array von Strukturen, die die Konnektivität der TRIVERTEX-Elemente definieren, auf die pVertex zeigt.

Wenn Rechtecke gezeichnet werden, zeigt pMesh auf ein Array von GRADIENT_RECT Strukturen, von denen jedes zwei TRIVERTEX-Elemente angibt, die ein Rechteck definieren. Die TRIVERTEX-Elemente können jedes diagonal entgegengesetzte Paar von rechteckigen Scheitelpunkten darstellen. Das Zeichnen von Rechtecken ist unten rechts exklusiv. Sowohl TRIVERTEX als auch GRADIENT_RECT sind in der Windows SDK-Dokumentation definiert.

Wenn Dreiecke gezeichnet werden, zeigt pMesh auf ein Array von GRADIENT_TRIANGLE Strukturen, von denen jedes die drei TRIVERTEX-Elemente angibt, die ein Dreieck definieren. Dreieckszeichnung ist unten rechts exklusiv. Die GRADIENT_TRIANGLE-Struktur ist in der Windows SDK-Dokumentation definiert.

nMesh

Gibt die Anzahl der Elemente im Array an, auf die pMesh zeigt.

prclExtents

Zeiger auf eine RECTL-Struktur , die den Bereich definiert, in dem die Farbverlaufszeichnung erfolgen soll. Die Punkte werden im Koordinatensystem der Zieloberfläche angegeben. Dieser Parameter ist nützlich, um die Größe der Zeichnungsvorgänge zu schätzen.

pptlDitherOrg

Zeiger auf eine POINTL-Struktur , die den Ursprung auf der Oberfläche für dithering definiert. Das obere linke Pixel des Dithermusters wird an diesem Punkt ausgerichtet.

[in] ulMode

Gibt den aktuellen Zeichnungsmodus und die Interpretation des Arrays an, auf das pMesh zeigt. Dieser Parameter kann einer der folgenden Werte sein:

GRADIENT_FILL_RECT_H

Der pMesh-Parameter verweist auf ein Array von GRADIENT_RECT Strukturen. Jedes Rechteck muss von links nach rechts schattiert werden.

GRADIENT_FILL_RECT_V

Der pMesh-Parameter verweist auf ein Array von GRADIENT_RECT Strukturen. Jedes Rechteck muss von oben nach unten schattiert werden.

GRADIENT_FILL_TRIANGLE

Der pMesh-Parameter verweist auf ein Array von GRADIENT_TRIANGLE Strukturen.

Rückgabewert

EngGradientFill gibt bei Erfolg TRUE zurück. Andernfalls wird ein Fehler gemeldet und FALSE zurückgegeben.

Hinweise

Der Treiber sollte EngGradientFill aufrufen, wenn er DrvGradientFill eingebunden hat und aufgerufen wird, um etwas zu tun, das er nicht unterstützt.

Die Formeln, die zum Berechnen des Farbwerts für jedes Pixel verwendet werden, hängen wie folgt vom Wert von ulMode ab:

GDI ignoriert den Alphawert der Scheitelpunkte und lässt den Alphakanal für Oberflächen unverändert, die Alpha unterstützen.

Anforderungen

   
Unterstützte Mindestversion (Client) Verfügbar in Windows 2000 und höheren Versionen der Windows-Betriebssysteme.
Zielplattform Universell
Header winddi.h (einschließlich Winddi.h)
Bibliothek Win32k.lib
DLL Win32k.sys

Weitere Informationen

DrvGradientFill