Partager via


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.

Note Cette méthode échoue si l’appareil Direct3D sous-jacent ne prend pas en charge la précision de la mémoire tampon demandée. Utilisez ID2D1DeviceContext ::IsBufferPrecisionSupported pour déterminer ce qui est pris en charge.
 

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

Voir aussi

D2D1_BUFFER_PRECISION

D2D1_EXTEND_MODE

D2D1_GAMMA_CONVERSION

D2D1_GRADIENT_STOP

ID2D1DeviceContext

ID2D1GradientStopCollection1

ID2D1RenderTarget ::CreateGradientStopCollection