struttura D2D1_GRADIENT_STOP (d2d1.h)

Contiene la posizione e il colore di un punto di interruzione sfumatura.

Sintassi

typedef struct D2D1_GRADIENT_STOP {
  FLOAT        position;
  D2D1_COLOR_F color;
} D2D1_GRADIENT_STOP;

Members

position

Tipo: FLOAT

Valore che indica la posizione relativa dell'interruzione sfumatura nel pennello. Questo valore deve essere compreso nell'intervallo [0,0f, 1,0f] se l'interruzione della sfumatura deve essere visualizzata in modo esplicito.

color

Tipo: D2D1_COLOR_F

Colore del cursore sfumatura.

Commenti

Le interruzioni sfumature possono essere specificate in qualsiasi ordine se si trovano in posizioni diverse. Due stop possono condividere una posizione. In questo caso, il primo arresto specificato viene considerato come l'arresto "basso" (più vicino a 0,0f) e le interruzioni successive vengono considerate come "superiori" (più vicino a 1,0f). Questo comportamento è utile se un chiamante vuole una transizione immediata al centro di un arresto.

In genere, in una raccolta sono presenti almeno due punti, anche se la creazione con una sola interruzione è consentita. Ad esempio, un punto si trova nella posizione 0,0f, un altro punto si trova nella posizione 1,0f e i punti aggiuntivi vengono distribuiti nell'intervallo [0, 1]. Se la progressione della sfumatura supera l'intervallo di [0, 1], le interruzioni vengono archiviate, ma possono influire sulla sfumatura.

Quando viene disegnato, l'intervallo di posizioni [0, 1] viene mappato al pennello, in modo dipendente dal pennello. Per informazioni dettagliate, vedere ID2D1LinearGradientBrush e ID2D1RadialGradientBrush.

Le interruzioni sfumature con una posizione esterna all'intervallo [0, 1] non possono essere visualizzate in modo esplicito, ma possono comunque influire sui colori prodotti nell'intervallo [0, 1]. Ad esempio, una sfumatura a due interruzioni {{0.0f, Nero}, {2.0f, Bianco}} è visivamente indistinguibile da {{0.0f, Nero}, {1.0f, Grigio medio}}. Inoltre, i colori vengono bloccati prima dell'interpolazione.

Esempio

L'esempio seguente crea una matrice di interruzioni sfumature, quindi le usa per creare un oggetto 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
    );

Nell'esempio di codice seguente viene usato l'oggetto ID2D1GradientStopCollection per creare un oggetto 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
        );
}

Requisiti

   
Client minimo supportato Windows 7, Windows Vista con SP2 e Aggiornamento della piattaforma per Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 R2, Windows Server 2008 con SP2 e Platform Update per Windows Server 2008 [app desktop | App UWP]
Intestazione d2d1.h

Vedi anche

Panoramica dei pennelli

CreateGradientStopCollection

Come creare un pennello sfumato lineare

Come creare un pennello sfumato radiale

ID2D1GradientStopCollection

ID2D1LinearGradientBrush

ID2D1RadialGradientBrush