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
Come creare un pennello sfumato lineare