|
SDLPainter 1.2.0
SDL3 + OpenGL/Vulkan 2D çizim kütüphanesi
|
Application penceresi ve backend yapılandırması. Ayrıntılar...
#include <app_config.h>
Public Özellikler(attribute) | |
| std::string | title {"SDLPainter Application"} |
| Pencere başlığı. | |
| int32_t | width {800} |
| Pencere genişliği (piksel). | |
| int32_t | height {600} |
| Pencere yüksekliği (piksel). | |
| bool | resizable {true} |
| Pencere yeniden boyutlandırılabilir mi? | |
| bool | high_dpi {false} |
| Yüksek piksel yoğunluğu (HiDPI / Retina) desteği. | |
| bool | vsync {true} |
| Dikey senkronizasyon. | |
| int32_t | msaa_samples {4} |
| MSAA örnek sayısı; 0 = kapalı. | |
| RendererBackend | backend {RendererBackend::kOpenGL} |
| Kullanılacak render backend'i. | |
| TimingMode | timing {TimingMode::kVariable} |
| Döngü zamanlama modeli. | |
| int32_t | fixed_update_hz {60} |
| Sabit güncelleme frekansı (Hz) — yalnızca TimingMode::kFixed. OnUpdate bu sıklıkta, 1/fixed_update_hz saniyelik sabit adımla çağrılır. | |
| int32_t | target_fps {0} |
| Hedef kare hızı (FPS) freni; 0 = sınırsız (yalnızca vsync sınırlar). >0 ise her frame sonunda SDL_DelayNS ile kare süresi bu değere frenlenir. vsync ile birlikte kullanılabilir (hangisi daha kısıtlayıcıysa o baskındır). | |
| bool | init_logger {true} |
| spdlog varsayılan logger'ını kur (renkli konsol + Win32 VT). | |
| StatsOverlayMode | stats_overlay {StatsOverlayMode::kNone} |
| Başlangıçtaki gösterge modu. | |
| Key | stats_overlay_key {Key::kF1} |
| Gösterge modunu döngüleyen tuş; Key::kUnknown = devre dışı. | |
| bool | show_fps_in_title {false} |
| FPS'i pencere başlığında da göster ("<başlık> — 142 FPS"). | |
| std::string | stats_overlay_font |
| Gösterge yazı tipi; boşsa sistem fontları aranır. | |
| int32_t | stats_overlay_font_size {14} |
| Gösterge yazı boyutu (punto). | |
Application penceresi ve backend yapılandırması.
C++17 aggregate — varsayılan değerlerle oluşturulup alan alan doldurulur:
| bool sdl_painter::AppConfig::high_dpi {false} |
Yüksek piksel yoğunluğu (HiDPI / Retina) desteği.
true ise pencere SDL_WINDOW_HIGH_PIXEL_DENSITY ile oluşturulur ve framebuffer, ekran ölçek faktörü kadar büyür (örn. 200% ölçekte 800x600 pencere → 1600x1200 framebuffer). Application::Width ve Application::Height daima piksel cinsindendir; Painter koordinat sistemi de piksel tabanlıdır. Dolayısıyla bu seçenek açıkken çizim koordinatlarınızı Application::Width / Height üzerinden hesaplamanız gerekir — sabit sayılar küçük görünür.
Varsayılan false: framebuffer, mantıksal pencere boyutuyla aynıdır.
| bool sdl_painter::AppConfig::init_logger {true} |
spdlog varsayılan logger'ını kur (renkli konsol + Win32 VT).
| int32_t sdl_painter::AppConfig::msaa_samples {4} |
MSAA örnek sayısı; 0 = kapalı.
| bool sdl_painter::AppConfig::show_fps_in_title {false} |
FPS'i pencere başlığında da göster ("<başlık> — 142 FPS").
Font gerektirmez; sistemde TTF bulunamasa bile çalışır. Başlık saniyede birkaç kez güncellenir.
| StatsOverlayMode sdl_painter::AppConfig::stats_overlay {StatsOverlayMode::kNone} |
Başlangıçtaki gösterge modu.
Çalışma zamanında AppConfig::stats_overlay_key ile döngüsel olarak değiştirilebilir (varsayılan: F1). Sahnenin sol üstüne çizilir ve uygulamanın kendi çizim durumunu (transform, clip, opaklık) bozmaz.
| std::string sdl_painter::AppConfig::stats_overlay_font |
Gösterge yazı tipi; boşsa sistem fontları aranır.
Kütüphane font gömmez. Boş bırakıldığında yaygın Windows/Linux/macOS yolları denenir; hiçbiri bulunamazsa ekran üstü gösterge sessizce devre dışı kalır (başlık göstergesi çalışmaya devam eder).
| Key sdl_painter::AppConfig::stats_overlay_key {Key::kF1} |
Gösterge modunu döngüleyen tuş; Key::kUnknown = devre dışı.
Sıralama: kapalı → FPS → detaylı → kapalı. Tuş, uygulamanın OnKeyDown metoduna da iletilir (çatı olayı tüketmez).
| bool sdl_painter::AppConfig::vsync {true} |
Dikey senkronizasyon.