aboutsummaryrefslogtreecommitdiff
path: root/include/cru/platform
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-11-28 18:46:52 +0800
committerYuqian Yang <crupest@crupest.life>2025-11-28 18:46:52 +0800
commitfa9e88a3a753de0f7a33efcf6a2671c28f099ba3 (patch)
treea0836203b9d178ff6cd1cf0acb3620852d7566ac /include/cru/platform
parent9e596ff10782455615f69b9b54ce22176145b020 (diff)
downloadcru-fa9e88a3a753de0f7a33efcf6a2671c28f099ba3.tar.gz
cru-fa9e88a3a753de0f7a33efcf6a2671c28f099ba3.tar.bz2
cru-fa9e88a3a753de0f7a33efcf6a2671c28f099ba3.zip
sdl add event dispatch logic.
Diffstat (limited to 'include/cru/platform')
-rw-r--r--include/cru/platform/gui/sdl/UiApplication.h6
-rw-r--r--include/cru/platform/gui/sdl/Window.h1
2 files changed, 6 insertions, 1 deletions
diff --git a/include/cru/platform/gui/sdl/UiApplication.h b/include/cru/platform/gui/sdl/UiApplication.h
index be5ae102..776a4d80 100644
--- a/include/cru/platform/gui/sdl/UiApplication.h
+++ b/include/cru/platform/gui/sdl/UiApplication.h
@@ -6,6 +6,7 @@
#include <cru/base/Timer.h>
#include <cru/platform/graphics/Factory.h>
+#include <SDL3/SDL_events.h>
#include <atomic>
#include <chrono>
#include <cstdint>
@@ -18,7 +19,8 @@ class SdlUiApplication : public SdlResource, public virtual IUiApplication {
friend SdlWindow;
public:
- explicit SdlUiApplication(graphics::IGraphicsFactory* graphics_factory, bool release_graphics_factory);
+ explicit SdlUiApplication(graphics::IGraphicsFactory* graphics_factory,
+ bool release_graphics_factory);
~SdlUiApplication();
public:
@@ -61,6 +63,8 @@ class SdlUiApplication : public SdlResource, public virtual IUiApplication {
long long SetTimer(std::chrono::milliseconds milliseconds,
std::function<void()> action, bool repeat);
+ bool DispatchEvent(const SDL_Event& event);
+
private:
graphics::IGraphicsFactory* graphics_factory_;
bool release_graphics_factory_;
diff --git a/include/cru/platform/gui/sdl/Window.h b/include/cru/platform/gui/sdl/Window.h
index 9947a1b9..22b797b5 100644
--- a/include/cru/platform/gui/sdl/Window.h
+++ b/include/cru/platform/gui/sdl/Window.h
@@ -96,6 +96,7 @@ class SdlWindow : public SdlResource, public virtual INativeWindow {
private:
SdlUiApplication* application_;
SDL_Window* sdl_window_;
+ SDL_WindowID sdl_window_id_;
Rect client_rect_;
SdlWindow* parent_;
EventHandlerRevokerGuard parent_create_guard_;