|
SDLPainter 1.2.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.
Bunun bedeli, geçişin şeklin köşe yoğunluğu kadar hassas olmasıdır: iki üçgenden ibaret bir dikdörtgende doğrusal geçiş kusursuzdur (tam da donanımın enterpole ettiği şey), ama az segmentli bir şekilde ışınsal geçiş bantlanabilir. Daire ve elips segment sayısı yarıçapa göre uyarlandığı için pratikte sorun çıkarmaz.
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. |