|
SDLPainter 1.2.0
SDL3 + OpenGL/Vulkan 2D çizim kütüphanesi
|
Backend-agnostik soyut renderer arayüzü. Ayrıntılar...
#include <renderer.h>
Public Üye Fonksiyonlar | |
| virtual bool | Initialize (SDL_Window *window)=0 |
| Renderer'ı verilen pencere için başlat. | |
| virtual void | Shutdown ()=0 |
| Kaynakları serbest bırak. | |
| virtual void | BeginFrame ()=0 |
| Yeni frame'e başla. | |
| virtual void | EndFrame ()=0 |
| Frame'i tamamla ve ekrana sun. | |
| virtual void | SetViewport (int32_t x, int32_t y, int32_t width, int32_t height)=0 |
| Viewport'u ayarla (piksel koordinatları). | |
| virtual void | SetScissor (int32_t x, int32_t y, int32_t width, int32_t height)=0 |
| Scissor (kırpma) dikdörtgeni ayarla. | |
| virtual void | ClearScissor ()=0 |
| Scissor kırpmasını kaldır. | |
| virtual void | Clear (const Color &color)=0 |
| Ekranı belirtilen renkle temizle. | |
| virtual void | SetOpacity (float alpha)=0 |
| Global opaklığı ayarla [0.0, 1.0]. | |
| virtual void | SetBlendMode (BlendMode mode) |
| Renk karıştırma modunu ayarla. | |
| virtual void | DrawTriangles (const std::vector< Vertex > &vertices)=0 |
| Üçgenler çiz. Vertex listesi 3'ün katı olmalı. Renk vertex'te taşınır. | |
| virtual TextureHandle | CreateTexture (const uint8_t *data, int32_t width, int32_t height, int32_t channels)=0 |
| Ham piksel verisinden texture oluştur. Başarısızlıkta kInvalidTexture döner. | |
| virtual TextureHandle | CreateTexture (const uint8_t *data, int32_t width, int32_t height, int32_t channels, TextureFilter filter) |
| Örnekleme filtresi belirterek texture oluştur. | |
| virtual void | UpdateTexture (TextureHandle handle, int32_t x, int32_t y, int32_t width, int32_t height, const uint8_t *data)=0 |
| Var olan bir texture'ın alt bölgesini güncelle (sub-image yükleme). | |
| virtual void | DestroyTexture (TextureHandle handle)=0 |
| Texture'ı sil. | |
| virtual void | DrawTextured (const std::vector< TexturedVertex > &vertices, TextureHandle texture)=0 |
| Texture'lı vertex'leri çiz. Tint rengi vertex'te taşınır. | |
| virtual RendererBackend | GetBackend () const =0 |
| Backend tipini döndür — projeksiyon yönü için kullanılır. | |
| virtual void | SetProjectionMatrix (const float *mat4)=0 |
| Ortografik projeksiyon matrisini ayarla (4x4, sütun-major). | |
| virtual void | SetModelMatrix (const float *mat3)=0 |
| Model dönüşüm matrisini ayarla (3x3, sütun-major — glm::mat3 / glm::value_ptr düzeni). | |
| virtual double | GetLastGpuFrameMs () const |
| Son tamamlanan karenin GPU süresi (milisaniye). | |
Backend-agnostik soyut renderer arayüzü.
OpenGL ve Vulkan implementasyonları bu arayüzü uygular. Painter, IRenderer üzerinden çalışır — backend detaylarını bilmez.
|
inlinevirtual |
Örnekleme filtresi belirterek texture oluştur.
Saf sanal değildir: varsayılan gövde filtreyi yok sayıp yukarıdaki aşırı yüklemeye düşer. Böylece bu arayüzü dışarıda implemente etmiş kod, filtre desteği gelmeden önce yazılmış olsa bile derlenmeye devam eder ve doğrusal filtreyle çalışır. Aynı yaklaşım GetLastGpuFrameMs için de kullanılıyor.
|
inlinenodiscardvirtual |
Son tamamlanan karenin GPU süresi (milisaniye).
Saf sanal değildir: ölçüm desteklemeyen backend'ler ve tüketici tarafındaki basit implementasyonlar bunu görmezden gelebilir. Varsayılan 0.0 = "ölçülmüyor".
Sonuç bir kare gecikmeli olabilir; implementasyon, sorgu sonucunu beklemek yerine hazır olan en son değeri döndürmelidir (bekleme, ölçtüğü şeyi bozan bir CPU–GPU senkronizasyonu yaratır).
|
inlinevirtual |
Renk karıştırma modunu ayarla.
Saf sanal değildir: varsayılan gövde çağrıyı yok sayar, yani bu arayüzü dışarıda implemente etmiş kod derlenmeye devam eder ve standart alfa karıştırmayla çalışır. Aynı yaklaşım GetLastGpuFrameMs ve filtreli CreateTexture için de kullanılıyor.
|
pure virtual |
Model dönüşüm matrisini ayarla (3x3, sütun-major — glm::mat3 / glm::value_ptr düzeni).
|
pure virtual |
Var olan bir texture'ın alt bölgesini güncelle (sub-image yükleme).
Glyph atlası gibi artımlı doldurulan texture'lar için gereklidir: her yeni glyph'te tüm sayfayı yeniden yaratmak yerine yalnızca ilgili dikdörtgen yüklenir.
| handle | Güncellenecek texture (CreateTexture ile üretilmiş). |
| x | Hedef bölgenin sol kenarı (piksel). |
| y | Hedef bölgenin üst kenarı (piksel). |
| width | Bölge genişliği (piksel, > 0). |
| height | Bölge yüksekliği (piksel, > 0). |
| data | Sıkı paketlenmiş RGBA8 piksel verisi (width * height * 4 bayt). |