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
Cómo crear un pincel de degradado lineal