SDLPainter 1.2.0
SDL3 + OpenGL/Vulkan 2D çizim kütüphanesi
Yüklüyor...
Arıyor...
Eşleşme Yok
sdl_painter::AppConfig Yapı(Struct) Referans

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

Ayrıntılı tanımlama

Application penceresi ve backend yapılandırması.

C++17 aggregate — varsayılan değerlerle oluşturulup alan alan doldurulur:

cfg.title = "Demo";
cfg.width = 900;
cfg.height = 700;
Application penceresi ve backend yapılandırması.
Definition app_config.h:43
int32_t height
Pencere yüksekliği (piksel).
Definition app_config.h:51
std::string title
Pencere başlığı.
Definition app_config.h:45
int32_t width
Pencere genişliği (piksel).
Definition app_config.h:48

Üye Veri Dokümantasyonu

◆ high_dpi

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.

◆ init_logger

bool sdl_painter::AppConfig::init_logger {true}

spdlog varsayılan logger'ını kur (renkli konsol + Win32 VT).

Not
Host uygulama kendi logger'ını kullanacaksa false yapın.

◆ msaa_samples

int32_t sdl_painter::AppConfig::msaa_samples {4}

MSAA örnek sayısı; 0 = kapalı.

Not
Yalnızca OpenGL backend'de geçerlidir ve pencere oluşturulmadan önce GL attribute olarak uygulanır. Vulkan'da yoksayılır.

◆ show_fps_in_title

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.

◆ stats_overlay

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.

◆ stats_overlay_font

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

◆ stats_overlay_key

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

◆ vsync

bool sdl_painter::AppConfig::vsync {true}

Dikey senkronizasyon.

Not
Yalnızca OpenGL backend'de SDL_GL_SetSwapInterval ile uygulanır. Vulkan'da yoksayılır — sunum modu swapchain tarafından seçilir.

Bu yapı(struct) için dokümantasyon aşağıdaki dosyadan üretilmiştir: