|
SDLPainter 1.4.0
SDL3 + OpenGL/Vulkan 2D çizim kütüphanesi
|
Dolgu stili — düz renk veya gradient. Ayrıntılar...
#include <brush.h>
Public Üye Fonksiyonlar | |
| Brush ()=default | |
| Varsayılan fırça: siyah, tam opak. | |
| Brush (const Color &color) | |
| Renk ile fırça oluştur. | |
| BrushType | GetType () const noexcept |
| Fırçanın dolgu türü. | |
| bool | IsGradient () const noexcept |
| Gradient mi? (düz renk değil). | |
| const Color & | GetColor2 () const noexcept |
| Gradient bitiş rengi (düz fırçada anlamsız). | |
| const Point & | GetStart () const noexcept |
| Doğrusal gradientte başlangıç, ışınsalda merkez. | |
| const Point & | GetEnd () const noexcept |
| Doğrusal gradientte bitiş noktası. | |
| float | GetRadius () const noexcept |
| Işınsal gradientte yarıçap. | |
| const Color & | GetColor () const noexcept |
| Dolgu rengini döndür. | |
| void | SetColor (const Color &color) noexcept |
| Dolgu rengini ayarla. | |
| bool | IsVisible () const noexcept |
| Fırça görünür mü? (alpha > 0). | |
Statik Public Üye Fonksiyonlar | |
| static Brush | LinearGradient (const Point &start, const Point &end, const Color &from, const Color &to) noexcept |
| Doğrusal gradient fırça. | |
| static Brush | RadialGradient (const Point ¢er, float radius, const Color &from, const Color &to) noexcept |
| Işınsal gradient fırça. | |
| static Brush | NoBrush () noexcept |
| Şeffaf (dolgu yapmayan) fırça. | |
Dolgu stili — düz renk veya gradient.
Gradient shader gerektirmez. Vertex'ler zaten renk taşıyor (batch'leme bunun için yapıldı), bu yüzden geçiş tessellation sırasında köşe renkleri hesaplanarak üretilir ve enterpolasyonu donanım yapar. Sonuç: gradient hiçbir backend değişikliği gerektirmez ve batch'i kırmaz — opaklığın aksine.
Geçişin şeklin köşe yoğunluğuna bağlı kalmaması için dolgu üçgenleri gradient sınırlarında bölünür. Doğrusal geçişte rengin doğrusallığını yitirdiği tek yer parametrenin kırpıldığı iki sınırdır; orada bölmek sonucu tam doğru yapar. Işınsal geçiş mesafeye bağlı olduğu için doğrusal değildir, üçgenler hata ölçüsüne göre bölünür; kırpılmış bölgelerde hata sıfır olduğundan maliyet geçiş bandıyla sınırlı kalır.
Gradient koordinatları çizim koordinatlarıyla aynı uzaydadır (şekil yerel), yani transform yığınından etkilenir — Qt'nin QLinearGradient davranışı gibi.
|
inlinenodiscardnoexcept |
Fırça görünür mü? (alpha > 0).
Fırça görünür mü?
Gradient'te iki uçtan biri bile opaksa görünürdür; yalnızca başlangıç rengine bakmak, saydamdan opağa giden bir geçişi yanlışlıkla görünmez sayardı.
|
inlinestaticnodiscardnoexcept |
Doğrusal gradient fırça.
Renk start noktasında from, end noktasında to olur; aradaki değerler bu iki nokta arasındaki izdüşüme göre enterpole edilir. Çizgiye dik yönde renk sabittir.
| start | Geçişin başladığı nokta (çizim koordinatı). |
| end | Geçişin bittiği nokta. start ile aynıysa fırça düz from rengine döner (sıfıra bölme yok). |
|
inlinestaticnodiscardnoexcept |
Işınsal gradient fırça.
Renk merkezde from, radius uzaklığında to olur; ötesi to ile doldurulur.
| radius | Yarıçap. Pozitif değilse fırça düz from rengine döner. |