Partager via


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

Vue d’ensemble des pinceaux

CreateGradientStopCollection

Guide pratique pour créer un pinceau dégradé linéaire

Comment créer un pinceau dégradé radial

ID2D1GradientStopCollection

ID2D1LinearGradientBrush

ID2D1RadialGradientBrush