Compartir a través de


estructura D2D1_GRADIENT_STOP (d2d1.h)

Contiene la posición y el color de una parada de degradado.

Sintaxis

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

Miembros

position

Tipo: FLOAT

Valor que indica la posición relativa de la parada de degradado en el pincel. Este valor debe estar en el intervalo [0,0f, 1,0f] si se va a ver explícitamente la parada de degradado.

color

Tipo: D2D1_COLOR_F

Color del delimitador de degradado.

Comentarios

Los delimitadores de degradado se pueden especificar en cualquier orden si están en diferentes posiciones. Dos paradas pueden compartir una posición. En este caso, la primera parada especificada se trata como la parada "baja" (cerca de 0,0f) y las paradas posteriores se tratan como "superiores" (más cerca de 1,0f). Este comportamiento es útil si un llamador quiere una transición instantánea en medio de una detención.

Normalmente, hay al menos dos puntos en una colección, aunque solo se permite la creación con una parada. Por ejemplo, un punto está en la posición 0,0f, otro punto está en la posición 1,0f y los puntos adicionales se distribuyen en el intervalo [0, 1]. Donde la progresión del degradado está fuera del intervalo de [0, 1], las paradas se almacenan, pero pueden afectar al degradado.

Cuando se dibuja, el intervalo [0, 1] de posiciones se asigna al pincel, de forma dependiente del pincel. Para obtener más información, consulte ID2D1LinearGradientBrush e ID2D1RadialGradientBrush.

Los delimitadores de degradado con una posición fuera del intervalo [0, 1] no se pueden ver explícitamente, pero todavía pueden afectar a los colores producidos en el intervalo [0, 1]. Por ejemplo, un degradado de dos pasos {{0.0f, Black}, {2.0f, White}} es indistinguible visualmente de {{0.0f, Black}, {1.0f, gris de nivel medio}}. Además, los colores se sujetan antes de la interpolación.

Ejemplos

En el ejemplo siguiente se crea una matriz de paradas de degradado y, a continuación, se usan para crear 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
    );

En el ejemplo de código siguiente se usa ID2D1GradientStopCollection para crear un 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
        );
}

Requisitos

   
Cliente mínimo compatible Windows 7, Windows Vista con SP2 y Platform Update para Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 R2, Windows Server 2008 con SP2 y Actualización de plataforma para Windows Server 2008 [aplicaciones de escritorio | Aplicaciones para UWP]
Encabezado d2d1.h

Consulte también

Información general sobre los pinceles

CreateGradientStopCollection

Cómo crear un pincel de degradado lineal

Cómo crear un pincel de degradado radial

ID2D1GradientStopCollection

ID2D1LinearGradientBrush

ID2D1RadialGradientBrush