Compartir a través de


Método ID2D1DeviceContext::CreateGradientStopCollection (d2d1_1.h)

Crea una colección de detención de degradado, lo que permite que el degradado contenga canales de color con valores fuera de [0,1] y que también permita la representación en un destino de representación de color alto con interpolación en el espacio sRGB.

Sintaxis

HRESULT CreateGradientStopCollection(
        const D2D1_GRADIENT_STOP      *straightAlphaGradientStops,
        UINT32                        straightAlphaGradientStopsCount,
        D2D1_COLOR_SPACE              preInterpolationSpace,
        D2D1_COLOR_SPACE              postInterpolationSpace,
        D2D1_BUFFER_PRECISION         bufferPrecision,
        D2D1_EXTEND_MODE              extendMode,
        D2D1_COLOR_INTERPOLATION_MODE colorInterpolationMode,
  [out] ID2D1GradientStopCollection1  **gradientStopCollection1
);

Parámetros

straightAlphaGradientStops

Tipo: const D2D1_GRADIENT_STOP*

Matriz de valores de color y desplazamientos.

straightAlphaGradientStopsCount

Tipo: UINT

Número de elementos de la matriz gradientStops .

preInterpolationSpace

Tipo: D2D1_COLOR_SPACE

Especifica el espacio de color de entrada y el espacio en el que se produce la interpolación de color.

postInterpolationSpace

Tipo: D2D1_COLOR_SPACE

Espacio de color al que se convertirán los colores después de que se produzca la interpolación.

bufferPrecision

Tipo: D2D1_BUFFER_PRECISION

Precisión de la textura utilizada para contener valores interpolados.

Nota Este método producirá un error si el dispositivo Direct3D subyacente no admite la precisión del búfer solicitada. Use ID2D1DeviceContext::IsBufferPrecisionSupported para determinar qué se admite.
 

extendMode

Tipo: D2D1_EXTEND_MODE

Define cómo se determinan los colores fuera del intervalo definido por la colección stop.

colorInterpolationMode

Tipo: D2D1_COLOR_INTERPOLATION_MODE

Define cómo se interpolan los colores. D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED es el valor predeterminado, consulte Comentarios para obtener más información.

[out] gradientStopCollection1

Tipo: ID2D1GradientStopCollection1**

Nueva colección de detención de degradado.

Valor devuelto

Tipo: HRESULT

El método devuelve un valor HRESULT. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.

HRESULT Descripción
S_OK No se ha producido ningún error.
E_OUTOFMEMORY Direct2D no pudo asignar memoria suficiente para completar la llamada.
E_INVALIDARG Se pasó un valor no válido al método .

Comentarios

Este método interpola linealmente entre las paradas de color. Se aplica una conversión de espacio de color opcional después de la interpolación. Si se aplica y cómo se aplica esta conversión gamma se determina mediante la interpolación previa y posterior. Este método producirá un error si el contexto del dispositivo no admite la precisión del búfer solicitada.

Para obtener el resultado deseado, debe asegurarse de que las entradas se especifican en el espacio de color correcto.

Siempre debe especificar colores en alfa recto, independientemente de que el modo de interpolación esté premultiplicado o recto. El modo de interpolación solo afecta a los valores interpolados. Del mismo modo, las paradas devueltas por ID2D1GradientStopCollection::GetGradientStops siempre tendrán alfa recto.

Si especifica D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED, todas las paradas se premultiplican antes de la interpolación y, a continuación, se anulan previamente antes de la conversión de color.

A partir de Windows 8, el comportamiento de interpolación de este método ha cambiado.

En la tabla siguiente se muestra el comportamiento en Windows 7 y versiones anteriores.

Gamma Antes del comportamiento de interpolación Después del comportamiento de interpolación GetColorInteroplationGamma (espacio de colores de salida)
1.0 Sujeta las entradas y, a continuación, convierte de sRGB a scRGB. Convierte de scRGB a sRGB posterior a la interpolación. 1.0
2.2 Sujeta las entradas. Sin operación 2.2
 

En la tabla siguiente se muestra el comportamiento en Windows 8 y versiones posteriores.

Gamma Antes del comportamiento de interpolación Después del comportamiento de interpolación GetColorInteroplationGamma (espacio de colores de salida)
sRGB a scRGB Sin operación Sujeta las salidas y, a continuación, convierte de sRGB a scRGB. 1.0
scRGB a sRGB Sin operación Sujeta las salidas y, a continuación, convierte de sRGB a scRGB. 2.2
sRGB a sRGB Sin operación Sin operación 2.2
scRGB a scRGB Sin operación Sin operación 1.0

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 y Actualización de plataforma para Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2012 y actualización de plataforma para Windows Server 2008 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado d2d1_1.h
Archivo DLL D2d1.dll

Consulte también

D2D1_BUFFER_PRECISION

D2D1_EXTEND_MODE

D2D1_GAMMA_CONVERSION

D2D1_GRADIENT_STOP

ID2D1DeviceContext

ID2D1GradientStopCollection1

ID2D1RenderTarget::CreateGradientStopCollection