Bagikan melalui


METODE ID2D1DeviceContext::CreateGradientStopCollection (d2d1_1.h)

Membuat koleksi berhenti gradien, memungkinkan gradien berisi saluran warna dengan nilai di luar [0,1] dan juga memungkinkan penyajian ke target render warna tinggi dengan interpolasi di ruang sRGB.

Sintaks

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

Parameter

straightAlphaGradientStops

Jenis: const D2D1_GRADIENT_STOP*

Array nilai warna dan offset.

straightAlphaGradientStopsCount

Jenis: UINT

Jumlah elemen dalam array gradientStops .

preInterpolationSpace

Jenis: D2D1_COLOR_SPACE

Menentukan ruang warna input dan ruang tempat interpolasi warna terjadi.

postInterpolationSpace

Jenis: D2D1_COLOR_SPACE

Ruang warna yang akan dikonversi warna setelah interpolasi terjadi.

bufferPrecision

Jenis: D2D1_BUFFER_PRECISION

Presisi tekstur yang digunakan untuk menyimpan nilai terinterpolasi.

Catatan Metode ini akan gagal jika perangkat Direct3D yang mendasarinya tidak mendukung presisi buffer yang diminta. Gunakan ID2D1DeviceContext::IsBufferPrecisionSupported untuk menentukan apa yang didukung.
 

extendMode

Jenis: D2D1_EXTEND_MODE

Menentukan bagaimana warna di luar rentang yang ditentukan oleh koleksi berhenti ditentukan.

colorInterpolationMode

Jenis: D2D1_COLOR_INTERPOLATION_MODE

Menentukan bagaimana warna diinterpolasi. D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED adalah default, lihat Keterangan untuk informasi selengkapnya.

[out] gradientStopCollection1

Jenis: ID2D1GradientStopCollection1**

Koleksi stop gradien baru.

Nilai kembali

Jenis: HRESULT

Metode mengembalikan HRESULT. Nilai yang mungkin termasuk, tetapi tidak terbatas pada, yang ada dalam tabel berikut.

HRESULT Deskripsi
S_OK Tidak terjadi kesalahan.
E_OUTOFMEMORY Direct2D tidak dapat mengalokasikan memori yang cukup untuk menyelesaikan panggilan.
E_INVALIDARG Nilai yang tidak valid diteruskan ke metode .

Keterangan

Metode ini secara linier menginterpolasi antara warna berhenti. Konversi ruang warna opsional diterapkan pasca-interpolasi. Apakah dan bagaimana konversi gamma ini diterapkan ditentukan oleh pra-dan pasca-interpolasi. Metode ini akan gagal jika konteks perangkat tidak mendukung presisi buffer yang diminta.

Untuk mendapatkan hasil yang diinginkan, Anda perlu memastikan bahwa input ditentukan dalam ruang warna yang benar.

Anda harus selalu menentukan warna dalam alfa lurus, terlepas dari mode interpolasi yang diisi sebelumnya atau lurus. Mode interpolasi hanya memengaruhi nilai terinterpolasi. Demikian juga, perhentian yang dikembalikan oleh ID2D1GradientStopCollection::GetGradientStops akan selalu memiliki alfa lurus.

Jika Anda menentukan D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED, maka semua pemberhentian telah disiapkan sebelumnya sebelum interpolasi, lalu tidak di-premultip sebelum konversi warna.

Dimulai dengan Windows 8, perilaku interpolasi metode ini telah berubah.

Tabel di sini menunjukkan perilaku di Windows 7 dan yang lebih lama.

Gama Sebelum Perilaku Interpolasi Setelah Perilaku Interpolasi GetColorInteroplationGamma (ruang warna output)
1,0 Menjepit input dan kemudian mengonversi dari sRGB ke scRGB. Mengonversi dari scRGB ke sRGB pasca-interpolasi. 1,0
2.2 Menjepit input. Tidak Ada Operasi 2.2
 

Tabel di sini memperlihatkan perilaku dalam Windows 8 dan yang lebih baru.

Gama Sebelum Perilaku Interpolasi Setelah Perilaku Interpolasi GetColorInteroplationGamma (ruang warna output)
sRGB ke scRGB Tidak Ada Operasi Menjepit output dan kemudian mengonversi dari sRGB ke scRGB. 1,0
scRGB ke sRGB Tidak Ada Operasi Menjepit output dan kemudian mengonversi dari sRGB ke scRGB. 2.2
sRGB ke sRGB Tidak Ada Operasi Tidak Ada Operasi 2.2
scRGB ke scRGB Tidak Ada Operasi Tidak Ada Operasi 1,0

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8 dan Pembaruan Platform untuk Windows Vista [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2012 dan Pembaruan Platform untuk Windows Server 2008 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header d2d1_1.h
DLL D2d1.dll

Lihat juga

D2D1_BUFFER_PRECISION

D2D1_EXTEND_MODE

D2D1_GAMMA_CONVERSION

D2D1_GRADIENT_STOP

ID2D1DeviceContext

ID2D1GradientStopCollection1

ID2D1RenderTarget::CreateGradientStopCollection