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

Cria uma coleção de stop de gradiente, permitindo que o gradiente contenha canais de cores com valores fora de [0,1] e também habilitando a renderização para um destino de renderização de alta cor com interpolação no espaço sRGB.

Sintaxe

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*

Uma matriz de valores de cor e deslocamentos.

straightAlphaGradientStopsCount

Tipo: UINT

O número de elementos na matriz gradientStops .

preInterpolationSpace

Tipo: D2D1_COLOR_SPACE

Especifica o espaço de cor de entrada e o espaço no qual a interpolação de cor ocorre.

postInterpolationSpace

Tipo: D2D1_COLOR_SPACE

O espaço de cor em que as cores serão convertidas após a interpolação ocorrer.

bufferPrecision

Tipo: D2D1_BUFFER_PRECISION

A precisão da textura usada para conter valores interpolados.

Nota Esse método falhará se o dispositivo Direct3D subjacente não der suporte à precisão de buffer solicitada. Use ID2D1DeviceContext::IsBufferPrecisionSupported para determinar o que tem suporte.
 

extendMode

Tipo: D2D1_EXTEND_MODE

Define como as cores fora do intervalo definido pela coleção stop são determinadas.

colorInterpolationMode

Tipo: D2D1_COLOR_INTERPOLATION_MODE

Define como as cores são interpoladas. D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED é o padrão, consulte Comentários para obter mais informações.

[out] gradientStopCollection1

Tipo: ID2D1GradientStopCollection1**

A nova coleção de stop de gradiente.

Retornar valor

Tipo: HRESULT

O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.

HRESULT Descrição
S_OK Não ocorreu nenhum erro.
E_OUTOFMEMORY Direct2D não foi possível alocar memória suficiente para concluir a chamada.
E_INVALIDARG Um valor inválido foi passado para o método .

Comentários

Esse método interpola linearmente entre as paradas de cor. Uma conversão de espaço de cor opcional é aplicada após a interpolação. Se e como essa conversão gama é aplicada é determinada pela interpolação pré e pós-interpolação. Esse método falhará se o contexto do dispositivo não der suporte à precisão de buffer solicitada.

Para obter o resultado desejado, você precisa garantir que as entradas sejam especificadas no espaço de cores correto.

Você sempre deve especificar cores em alfa reto, independentemente do modo de interpolação ser pré-multiplicado ou reto. O modo de interpolação afeta apenas os valores interpolados. Da mesma forma, as paradas retornadas por ID2D1GradientStopCollection::GetGradientStops sempre terão alfa reto.

Se você especificar D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED, todas as paradas serão pré-multiplicadas antes da interpolação e, em seguida, não pré-multiplicadas antes da conversão de cor.

Começando com Windows 8, o comportamento de interpolação desse método foi alterado.

A tabela aqui mostra o comportamento no Windows 7 e anteriores.

Gama Antes do comportamento de interpolação Após o comportamento de interpolação GetColorInteroplationGamma (espaço de cor de saída)
1.0 Fixa as entradas e converte de sRGB para scRGB. Converte de scRGB em pós-interpolação sRGB. 1.0
2,2 Fixa as entradas. Nenhuma operação 2.2
 

A tabela aqui mostra o comportamento em Windows 8 e posteriores.

Gama Antes do comportamento de interpolação Após o comportamento de interpolação GetColorInteroplationGamma (espaço de cor de saída)
sRGB para scRGB Nenhuma operação Fixa as saídas e converte de sRGB para scRGB. 1.0
scRGB para sRGB Nenhuma operação Fixa as saídas e converte de sRGB para scRGB. 2.2
sRGB para sRGB Nenhuma operação Nenhuma operação 2.2
scRGB para scRGB Nenhuma operação Nenhuma operação 1.0

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 e Atualização de Plataforma para Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2012 e Atualização de Plataforma para Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho d2d1_1.h
DLL D2d1.dll

Confira também

D2D1_BUFFER_PRECISION

D2D1_EXTEND_MODE

D2D1_GAMMA_CONVERSION

D2D1_GRADIENT_STOP

ID2D1DeviceContext

ID2D1GradientStopCollection1

ID2D1RenderTarget::CreateGradientStopCollection