ID2D1DeviceContext ::CreateGradientStopCollection, méthode (d2d1_1.h)
Crée une collection d’arrêt de dégradé, ce qui permet au dégradé de contenir des canaux de couleur avec des valeurs en dehors de [0,1] et permet également le rendu vers une cible de rendu haute couleur avec interpolation dans l’espace sRGB.
Syntaxe
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
);
Paramètres
straightAlphaGradientStops
Type : const D2D1_GRADIENT_STOP*
Tableau de valeurs de couleur et de décalages.
straightAlphaGradientStopsCount
Type : UINT
Nombre d’éléments dans le tableau gradientStops .
preInterpolationSpace
Type : D2D1_COLOR_SPACE
Spécifie à la fois l’espace de couleur d’entrée et l’espace dans lequel l’interpolation de couleur se produit.
postInterpolationSpace
Type : D2D1_COLOR_SPACE
Espace de couleurs vers lequel les couleurs seront converties après l’interpolation.
bufferPrecision
Type : D2D1_BUFFER_PRECISION
Précision de la texture utilisée pour contenir les valeurs interpolées.
extendMode
Type : D2D1_EXTEND_MODE
Définit la façon dont les couleurs en dehors de la plage définie par la collection stop sont déterminées.
colorInterpolationMode
Type : D2D1_COLOR_INTERPOLATION_MODE
Définit la façon dont les couleurs sont interpolées. D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED est la valeur par défaut, consultez Remarques pour plus d’informations.
[out] gradientStopCollection1
Type : ID2D1GradientStopCollection1**
Nouvelle collection de points de dégradé.
Valeur retournée
Type : HRESULT
Cette méthode retourne un code HRESULT. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.
HRESULT | Description |
---|---|
S_OK | Aucune erreur ne s'est produite. |
E_OUTOFMEMORY | Direct2D n’a pas pu allouer suffisamment de mémoire pour terminer l’appel. |
E_INVALIDARG | Une valeur non valide a été passée à la méthode. |
Remarques
Cette méthode interpole linéairement entre les arrêts de couleur. Une conversion d’espace de couleur facultative est appliquée après interpolation. Si et comment cette conversion gamma est appliquée sont déterminés par la pré-interpolation et la post-interpolation. Cette méthode échoue si le contexte de l’appareil ne prend pas en charge la précision de la mémoire tampon demandée.
Pour obtenir le résultat souhaité, vous devez vous assurer que les entrées sont spécifiées dans l’espace de couleurs correct.
Vous devez toujours spécifier des couleurs en alpha droit, quel que soit le mode d’interpolation prémultiplié ou droit. Le mode d’interpolation affecte uniquement les valeurs interpolées. De même, les arrêts retournés par ID2D1GradientStopCollection ::GetGradientStops auront toujours un alpha droit.
Si vous spécifiez D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED, tous les arrêts sont prémultipliés avant l’interpolation, puis non prémultipliés avant la conversion de couleur.
À compter de Windows 8, le comportement d’interpolation de cette méthode a changé.
Le tableau ci-dessous montre le comportement dans Windows 7 et versions antérieures.
Gamma | Comportement avant l’interpolation | Comportement après l’interpolation | GetColorInteroplationGamma (espace de couleur de sortie) |
---|---|---|---|
1.0 | Serre les entrées, puis convertit de sRGB en scRGB. | Convertit de scRGB en post-interpolation sRGB. | 1.0 |
2.2 | Serre les entrées. | Aucune opération | 2.2 |
Le tableau ci-dessous montre le comportement dans Windows 8 et versions ultérieures.
Gamma | Comportement avant l’interpolation | Comportement après l’interpolation | GetColorInteroplationGamma (espace de couleur de sortie) |
---|---|---|---|
sRGB à scRGB | Aucune opération | Serre les sorties, puis convertit de sRGB en scRGB. | 1.0 |
scRGB vers sRGB | Aucune opération | Serre les sorties, puis convertit de sRGB en scRGB. | 2.2 |
sRGB à sRGB | Aucune opération | Aucune opération | 2.2 |
scRGB à scRGB | Aucune opération | Aucune opération | 1.0 |
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8 et mise à jour de plateforme pour Windows Vista [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows Server 2012 et mise à jour de plateforme pour Windows Server 2008 [applications de bureau | Applications UWP] |
Plateforme cible | Windows |
En-tête | d2d1_1.h |
DLL | D2d1.dll |