ID2D1DeviceContext::CreateGradientStopCollection-Methode (d2d1_1.h)
Erstellt eine Farbverlaufsstoppauflistung, wodurch der Farbverlauf Farbkanäle mit Werten außerhalb von [0,1] enthalten kann, und ermöglicht das Rendern zu einem Renderziel mit hoher Farbe mit Interpolation im sRGB-Raum.
Syntax
HRESULT CreateGradientStopCollection(
const D2D1_GRADIENT_STOP *straightAlphaGradientStops,
UINT32 straightAlphaGradientStopsCount,
D2D1_COLOR_SPACE preInterpolationSpace,
D2D1_COLOR_SPACE postInterpolationSpace,
D2D1_BUFFER_PRECISION bufferPrecision,
D2D1_EXTEND_MODE extendMode,
D2D1_COLOR_INTERPOLATION_MODE colorInterpolationMode,
[out] ID2D1GradientStopCollection1 **gradientStopCollection1
);
Parameter
straightAlphaGradientStops
Typ: const D2D1_GRADIENT_STOP*
Ein Array von Farbwerten und Offsets.
straightAlphaGradientStopsCount
Typ: UINT
Die Anzahl der Elemente im Array gradientStops .
preInterpolationSpace
Typ: D2D1_COLOR_SPACE
Gibt sowohl den Eingabefarbraum als auch den Raum an, in dem die Farbinterpolation stattfindet.
postInterpolationSpace
Typ: D2D1_COLOR_SPACE
Der Farbraum, in den Farben konvertiert werden, nachdem die Interpolation erfolgt.
bufferPrecision
Die Genauigkeit der Textur, die verwendet wird, um interpolierte Werte zu enthalten.
extendMode
Typ: D2D1_EXTEND_MODE
Definiert, wie Farben außerhalb des durch die Stoppauflistung definierten Bereichs bestimmt werden.
colorInterpolationMode
Typ: D2D1_COLOR_INTERPOLATION_MODE
Definiert, wie Farben interpoliert werden. D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED standard ist, finden Sie weitere Informationen unter Hinweise.
[out] gradientStopCollection1
Typ: ID2D1GradientStopCollection1**
Die neue Farbverlaufstoppauflistung.
Rückgabewert
Typ: HRESULT
Die Methode gibt ein HRESULT zurück. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.
HRESULT | BESCHREIBUNG |
---|---|
S_OK | Kein Fehler ist aufgetreten. |
E_OUTOFMEMORY | Direct2D konnte nicht genügend Arbeitsspeicher zuweisen, um den Aufruf abzuschließen. |
E_INVALIDARG | Ein ungültiger Wert wurde an die -Methode übergeben. |
Hinweise
Diese Methode interpoliert linear zwischen den Farbstopps. Nach der Interpolation wird eine optionale Farbraumkonvertierung angewendet. Ob und wie diese Gammakonvertierung angewendet wird, wird durch die Pre- und Post-Interpolation bestimmt. Bei dieser Methode tritt ein Fehler auf, wenn der Gerätekontext die angeforderte Puffergenauigkeit nicht unterstützt.
Um das gewünschte Ergebnis zu erhalten, müssen Sie sicherstellen, dass die Eingaben im richtigen Farbraum angegeben werden.
Sie müssen immer Farben in der geraden Alpha angeben, unabhängig davon, ob der Interpolationsmodus vormultipliziert oder gerade ist. Der Interpolationsmodus wirkt sich nur auf die interpolierten Werte aus. Ebenso haben die von ID2D1GradientStopCollection::GetGradientStopStops zurückgegebenen Stopps immer ein gerades Alpha.
Wenn Sie D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED angeben, werden alle Stopps vor der Interpolation vor multipliziert und dann vor der Farbkonvertierung aufgehoben.
Ab Windows 8 hat sich das Interpolationsverhalten dieser Methode geändert.
Die folgende Tabelle zeigt das Verhalten in Windows 7 und früher.
Gamma | Verhalten vor der Interpolation | Verhalten nach der Interpolation | GetColorInteroplationGamma (Ausgabefarbraum) |
---|---|---|---|
1.0 | Klemmt die Eingaben und konvertiert dann von sRGB in scRGB. | Konvertiert nach der Interpolation von scRGB in sRGB. | 1.0 |
2.2 | Klemmt die Eingaben. | Keine Operation | 2.2 |
Die tabelle hier zeigt das Verhalten in Windows 8 und höher.
Gamma | Verhalten vor der Interpolation | Verhalten nach der Interpolation | GetColorInteroplationGamma (Ausgabefarbraum) |
---|---|---|---|
sRGB zu scRGB | Keine Operation | Klemmt die Ausgaben und konvertiert dann von sRGB in scRGB. | 1.0 |
scRGB zu sRGB | Keine Operation | Klemmt die Ausgaben und konvertiert dann von sRGB in scRGB. | 2.2 |
sRGB zu sRGB | Keine Operation | Keine Operation | 2.2 |
scRGB zu scRGB | Keine Operation | Keine Operation | 1.0 |
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 8 und Plattformupdate für Windows Vista [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2012- und Plattformupdate für Windows Server 2008 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | d2d1_1.h |
DLL | D2d1.dll |