Condividi tramite


Metodo ID2D1DeviceContext::CreateGradientStopCollection (d2d1_1.h)

Crea una raccolta di stop sfumatura, consentendo al gradiente di contenere i canali di colore con valori esterni a [0,1] e abilitando anche il rendering in una destinazione di rendering ad alto colore con interpolazione nello spazio sRGB.

Sintassi

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
);

Parametri

straightAlphaGradientStops

Tipo: const D2D1_GRADIENT_STOP*

Matrice di valori di colore e offset.

straightAlphaGradientStopsCount

Tipo: UINT

Numero di elementi nella matrice gradientStops .

preInterpolationSpace

Tipo: D2D1_COLOR_SPACE

Specifica sia lo spazio dei colori di input che lo spazio in cui si verifica l'interpolazione dei colori.

postInterpolationSpace

Tipo: D2D1_COLOR_SPACE

Lo spazio dei colori che i colori verranno convertiti in dopo che si verifica l'interpolazione.

bufferPrecision

Tipo: D2D1_BUFFER_PRECISION

Precisione della trama usata per contenere valori interpolati.

Nota Questo metodo avrà esito negativo se il dispositivo Direct3D sottostante non supporta la precisione del buffer richiesta. Usare ID2D1DeviceContext::IsBufferPrecisionSupported per determinare cosa è supportato.
 

extendMode

Tipo: D2D1_EXTEND_MODE

Definisce il modo in cui vengono determinati i colori all'esterno dell'intervallo definito dall'insieme stop.

colorInterpolationMode

Tipo: D2D1_COLOR_INTERPOLATION_MODE

Definisce la modalità di interpolazione dei colori. D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED è l'impostazione predefinita, vedere Osservazioni per altre informazioni.

[out] gradientStopCollection1

Tipo: ID2D1GradientStopCollection1**

Nuova raccolta di interruzioni sfumature.

Valore restituito

Tipo: HRESULT

Il metodo restituisce un HRESULT. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente.

HRESULT Descrizione
S_OK Non si sono verificati errori.
E_OUTOFMEMORY Direct2D non è riuscito a allocare memoria sufficiente per completare la chiamata.
E_INVALIDARG Un valore non valido è stato passato al metodo.

Commenti

Questo metodo interpola in modo lineare tra le interruzioni del colore. Viene applicata una conversione facoltativa dello spazio dei colori dopo l'interpolazione. Se e come viene applicata questa conversione gamma viene determinata dalla pre-interpolazione e post-interpolazione. Questo metodo avrà esito negativo se il contesto del dispositivo non supporta la precisione del buffer richiesta.

Per ottenere il risultato desiderato, è necessario assicurarsi che gli input siano specificati nello spazio dei colori corretto.

È sempre necessario specificare i colori in alfa dritto, indipendentemente dalla modalità interpolazione premultiplied o dritta. La modalità di interpolazione influisce solo sui valori interpolati. Analogamente, le interruzioni restituite da ID2D1GradientStopCollection::GetGradientStops avranno sempre alfa dritto.

Se si specifica D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED, tutti gli arresti vengono premultiplied prima dell'interpolazione e quindi non premultiplied prima della conversione del colore.

A partire da Windows 8, il comportamento di interpolazione di questo metodo è cambiato.

La tabella seguente mostra il comportamento in Windows 7 e versioni precedenti.

Gamma Prima del comportamento dell'interpolazione Dopo il comportamento dell'interpolazione GetColorInteroplationGamma (spazio colore di output)
1.0 Blocca gli input e quindi converte da sRGB a scRGB. Converte da scRGB a post-interpolazione sRGB. 1.0
2.2 Blocca gli input. Nessuna operazione 2.2
 

La tabella seguente mostra il comportamento in Windows 8 e versioni successive.

Gamma Prima del comportamento dell'interpolazione Dopo il comportamento dell'interpolazione GetColorInteroplationGamma (spazio colore di output)
sRGB to scRGB Nessuna operazione Blocca gli output e quindi converte da sRGB a scRGB. 1,0
scRGB to sRGB Nessuna operazione Blocca gli output e quindi converte da sRGB a scRGB. 2.2
sRGB per sRGB Nessuna operazione Nessuna operazione 2.2
scRGB to scRGB Nessuna operazione Nessuna operazione 1,0

Requisiti

Requisito Valore
Client minimo supportato Windows 8 e Aggiornamento della piattaforma per Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2012 e Aggiornamento della piattaforma per Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione d2d1_1.h
DLL D2d1.dll

Vedi anche

D2D1_BUFFER_PRECISION

D2D1_EXTEND_MODE

D2D1_GAMMA_CONVERSION

D2D1_GRADIENT_STOP

ID2D1DeviceContext

ID2D1GradientStopCollection1

ID2D1RenderTarget::CreateGradientStopCollection