3#include "sdl_painter/app/app_config.h"
4#include "sdl_painter/app/events.h"
5#include "sdl_painter/painter.h"
15namespace sdl_painter {
70 [[nodiscard]] int32_t
Width() const noexcept {
return mWidth; }
73 [[nodiscard]] int32_t
Height() const noexcept {
return mHeight; }
79 [[nodiscard]] SDL_Window*
GetWindow() const noexcept {
return mWindow; }
87 virtual bool OnInit() {
return true; }
149 void Teardown() noexcept;
150 void ProcessEvents();
153 SDL_Window* mWindow{
nullptr};
154 std::unique_ptr<Painter> mPainter;
155 bool mRunning{
false};
156 bool mSdlInitialized{
false};
157 uint64_t mLastTickNs{0};
int32_t Height() const noexcept
Güncel pencere yüksekliği (piksel).
Definition application.h:73
virtual void OnMouseWheel(const MouseWheelEvent &event)
Fare tekerleği döndü.
Definition application.h:130
virtual bool OnRawEvent(const SDL_Event &event)
Ham SDL olayı — kaçış kapısı.
Definition application.h:139
virtual void OnShutdown()
Döngü bittikten sonra bir kez çağrılır (temizlik).
Definition application.h:145
virtual void OnResize(const ResizeEvent &event)
Pencere yeniden boyutlandı.
Definition application.h:133
SDL_Window * GetWindow() const noexcept
Alttaki SDL penceresi — belgelenmiş kaçış kapısı (ileri kullanım).
Definition application.h:79
virtual void OnMouseButtonUp(const MouseButtonEvent &event)
Fare düğmesi bırakıldı.
Definition application.h:124
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:115
Application(AppConfig config={})
Verilen yapılandırma ile uygulamayı oluştur (init Run içinde).
virtual void OnRender(Painter &painter)
Her frame'de çizim.
Definition application.h:97
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:109
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:83
void Quit() noexcept
Olay döngüsünden çıkışı iste (bir sonraki iterasyonda durur).
int32_t Width() const noexcept
Güncel pencere genişliği (piksel).
Definition application.h:70
virtual void OnMouseMove(const MouseMoveEvent &event)
Fare hareket etti.
Definition application.h:127
virtual bool OnInit()
Döngü başlamadan bir kez çağrılır (kaynak yükleme vb.).
Definition application.h:87
virtual void OnMouseButtonDown(const MouseButtonEvent &event)
Fare düğmesine basıldı.
Definition application.h:121
virtual void OnKeyUp(const KeyEvent &event)
Tuş bırakıldı.
Definition application.h:118
virtual void OnUpdate(float dt)
Her frame'de güncelleme — dt saniye cinsinden delta zaman.
Definition application.h:92
Ana çizim sınıfı — QPainter'a benzer API.
Definition painter.h:51
Application penceresi ve backend yapılandırması.
Definition app_config.h:32
Klavye olayı.
Definition events.h:134
Fare hareketi olayı.
Definition events.h:149
Fare tekerleği olayı.
Definition events.h:157
Pencere yeniden boyutlandırma olayı.
Definition events.h:165