3#include "sdl_painter/app/app_config.h"
4#include "sdl_painter/app/events.h"
5#include "sdl_painter/app/export.h"
6#include "sdl_painter/painter.h"
16namespace sdl_painter {
77 [[nodiscard]] int32_t
Width() const noexcept {
return mWidth; }
80 [[nodiscard]] int32_t
Height() const noexcept {
return mHeight; }
86 [[nodiscard]] SDL_Window*
GetWindow() const noexcept {
return mWindow; }
92 [[nodiscard]]
double Fps() const noexcept;
173 void Teardown() noexcept;
174 void ProcessEvents();
179 void UpdateDrawableSize();
182 void UpdateTitleFps(uint64_t frame_ns);
185 SDL_Window* mWindow{
nullptr};
186 std::unique_ptr<Painter> mPainter;
187 bool mRunning{
false};
188 bool mSdlInitialized{
false};
190 uint64_t mLastTickNs{0};
199 float mPixelDensity{1.0F};
201 std::unique_ptr<app_detail::StatsOverlay> mStatsOverlay;
202 StatsOverlayMode mStatsMode{StatsOverlayMode::kNone};
203 uint64_t mTitleUpdateNs{0};
int32_t Height() const noexcept
Güncel çizim yüzeyi yüksekliği (framebuffer piksel).
Definition application.h:80
virtual void OnMouseWheel(const MouseWheelEvent &event)
Fare tekerleği döndü.
Definition application.h:154
double Fps() const noexcept
Yumuşatılmış kare hızı (kare/saniye).
virtual bool OnRawEvent(const SDL_Event &event)
Ham SDL olayı — kaçış kapısı.
Definition application.h:163
StatsOverlayMode GetStatsOverlay() const noexcept
Güncel gösterge modu.
Definition application.h:101
virtual void OnShutdown()
Döngü bittikten sonra bir kez çağrılır (temizlik).
Definition application.h:169
virtual void OnResize(const ResizeEvent &event)
Pencere yeniden boyutlandı.
Definition application.h:157
SDL_Window * GetWindow() const noexcept
Alttaki SDL penceresi — belgelenmiş kaçış kapısı (ileri kullanım).
Definition application.h:86
virtual void OnMouseButtonUp(const MouseButtonEvent &event)
Fare düğmesi bırakıldı.
Definition application.h:148
virtual ~Application()
Painter → pencere → SDL_Quit sırasıyla kaynakları serbest bırakır.
virtual void OnKeyDown(const KeyEvent &event)
Tuşa basıldı.
Definition application.h:139
Application(AppConfig config={})
Verilen yapılandırma ile uygulamayı oluştur (init Run içinde).
const FrameStats & GetFrameStats() const noexcept
Son tamamlanan karenin çizim istatistikleri.
virtual void OnRender(Painter &painter)
Her frame'de çizim.
Definition application.h:121
void SetTitle(const std::string &title)
Pencere başlığını güncelle.
virtual void OnRender(Painter &painter, float alpha)
İnterpolasyonlu çizim — alpha son sabit adımdan bu yana biriken artık zamanın oranı [0,...
Definition application.h:133
int Run()
Uygulamayı başlat ve olay döngüsünü çalıştır.
Painter & GetPainter()
Aktif Painter — yalnızca Run çalışırken (OnInit dahil) geçerli.
Definition application.h:107
void Quit() noexcept
Olay döngüsünden çıkışı iste (bir sonraki iterasyonda durur).
int32_t Width() const noexcept
Güncel çizim yüzeyi genişliği (framebuffer piksel).
Definition application.h:77
virtual void OnMouseMove(const MouseMoveEvent &event)
Fare hareket etti.
Definition application.h:151
void SetStatsOverlay(StatsOverlayMode mode) noexcept
Ekran üstü gösterge modunu değiştir.
Definition application.h:98
virtual bool OnInit()
Döngü başlamadan bir kez çağrılır (kaynak yükleme vb.).
Definition application.h:111
virtual void OnMouseButtonDown(const MouseButtonEvent &event)
Fare düğmesine basıldı.
Definition application.h:145
virtual void OnKeyUp(const KeyEvent &event)
Tuş bırakıldı.
Definition application.h:142
virtual void OnUpdate(float dt)
Her frame'de güncelleme — dt saniye cinsinden delta zaman.
Definition application.h:116
Ana çizim sınıfı
Definition painter.h:63
Application penceresi ve backend yapılandırması.
Definition app_config.h:43
Bir karenin çizim maliyeti — profilleme ve ekran üstü gösterim için.
Definition frame_stats.h:16
Klavye olayı.
Definition events.h:134
Fare hareketi olayı.
Definition events.h:148
Fare tekerleği olayı.
Definition events.h:156
Pencere yeniden boyutlandırma olayı.
Definition events.h:164