D2D1_GRADIENT_STOP structure (d2d1.h)
Contient la position et la couleur d’un point de dégradé.
Syntaxe
typedef struct D2D1_GRADIENT_STOP {
FLOAT position;
D2D1_COLOR_F color;
} D2D1_GRADIENT_STOP;
Membres
position
Type : FLOAT
Valeur qui indique la position relative du taquet de dégradé dans le pinceau. Cette valeur doit se trouver dans la plage [0.0f, 1.0f] si le taquet de dégradé doit être vu explicitement.
color
Type : D2D1_COLOR_F
Couleur du point de dégradé.
Remarques
Les points de dégradé peuvent être spécifiés dans n’importe quel ordre s’ils se trouvent à des positions différentes. Deux arrêts peuvent partager une position. Dans ce cas, le premier arrêt spécifié est traité comme le stop « faible » (plus proche de 0,0f) et les arrêts suivants sont traités comme « supérieur » (plus proche de 1,0f). Ce comportement est utile si un appelant souhaite une transition instantanée au milieu d’un arrêt.
En règle générale, une collection comporte au moins deux points, bien que la création avec un seul arrêt soit autorisée. Par exemple, un point se trouve à la position 0.0f, un autre point à la position 1.0f et des points supplémentaires sont distribués dans la plage [0, 1]. Lorsque la progression du dégradé est au-delà de la plage de [0, 1], les arrêts sont stockés, mais peuvent affecter le dégradé.
Lorsqu’elle est dessinée, la plage de positions [0, 1] est mappée au pinceau, de manière dépendante du pinceau. Pour plus d’informations, consultez ID2D1LinearGradientBrush et ID2D1RadialGradientBrush.
Les points de dégradé avec une position en dehors de la plage [0, 1] ne peuvent pas être vus explicitement, mais ils peuvent toujours affecter les couleurs produites dans la plage [0, 1]. Par exemple, un dégradé à deux arrêts {{0.0f, Noir}, {2.0f, Blanc}} est visuellement indistinguible de {{0.0f, Noir}, {1.0f, gris de niveau intermédiaire}}. En outre, les couleurs sont limitées avant l’interpolation.
Exemples
L’exemple suivant crée un tableau de points de dégradé, puis les utilise pour créer un ID2D1GradientStopCollection.
// Create an array of gradient stops to put in the gradient stop
// collection that will be used in the gradient brush.
ID2D1GradientStopCollection *pGradientStops = NULL;
D2D1_GRADIENT_STOP gradientStops[2];
gradientStops[0].color = D2D1::ColorF(D2D1::ColorF::Yellow, 1);
gradientStops[0].position = 0.0f;
gradientStops[1].color = D2D1::ColorF(D2D1::ColorF::ForestGreen, 1);
gradientStops[1].position = 1.0f;
// Create the ID2D1GradientStopCollection from a previously
// declared array of D2D1_GRADIENT_STOP structs.
hr = m_pRenderTarget->CreateGradientStopCollection(
gradientStops,
2,
D2D1_GAMMA_2_2,
D2D1_EXTEND_MODE_CLAMP,
&pGradientStops
);
L’exemple de code suivant utilise id2D1GradientStopCollection pour créer un OBJET ID2D1LinearGradientBrush.
// The line that determines the direction of the gradient starts at
// the upper-left corner of the square and ends at the lower-right corner.
if (SUCCEEDED(hr))
{
hr = m_pRenderTarget->CreateLinearGradientBrush(
D2D1::LinearGradientBrushProperties(
D2D1::Point2F(0, 0),
D2D1::Point2F(150, 150)),
pGradientStops,
&m_pLinearGradientBrush
);
}
Configuration requise
Client minimal pris en charge | Windows 7, Windows Vista avec SP2 et Mise à jour de plateforme pour Windows Vista [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows Server 2008 R2, Windows Server 2008 avec SP2 et Platform Update pour Windows Server 2008 [applications de bureau | Applications UWP] |
En-tête | d2d1.h |
Voir aussi
Guide pratique pour créer un pinceau dégradé linéaire