aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2025-04-17 16:36:38 +0200
committerdec05eba <dec05eba@protonmail.com>2025-04-17 16:36:38 +0200
commit18ed06b01363e674d81e8afd5773188b900b50ec (patch)
treee3817f5bfad0f488ca191d1cbca8c020956ab4c2
parent0c90a62d08ef8846b2516342f7a3ded10415f3bf (diff)
Move x11 code to separate place for main window code to prepare for wayland support
m---------depends/mgl0
-rw-r--r--include/mglpp/window/Window.hpp1
-rw-r--r--src/window/Window.cpp24
3 files changed, 18 insertions, 7 deletions
diff --git a/depends/mgl b/depends/mgl
-Subproject 0243be4eebe488b449742474d4301a39f00ac67
+Subproject 506c271eafec23bf469caf6c29431191fa885e5
diff --git a/include/mglpp/window/Window.hpp b/include/mglpp/window/Window.hpp
index 6bd77f8..eb14e23 100644
--- a/include/mglpp/window/Window.hpp
+++ b/include/mglpp/window/Window.hpp
@@ -123,6 +123,7 @@ namespace mgl {
mgl_window* internal_window();
private:
mgl_window window;
+ bool window_created = false;
};
}
diff --git a/src/window/Window.cpp b/src/window/Window.cpp
index ab42de0..fffacca 100644
--- a/src/window/Window.cpp
+++ b/src/window/Window.cpp
@@ -16,24 +16,34 @@ namespace mgl {
}
Window::Window() {
- window.window = 0;
+
}
Window::~Window() {
- if(window.window)
+ if(window_created)
mgl_window_deinit(&window);
}
bool Window::create(const char *title, CreateParams create_params) {
- if(window.window)
+ if(window_created)
return false;
- return mgl_window_create(&window, title, (const mgl_window_create_params*)&create_params) == 0;
+
+ if(mgl_window_create(&window, title, (const mgl_window_create_params*)&create_params) == 0) {
+ window_created = true;
+ return true;
+ }
+ return false;
}
bool Window::create(WindowHandle existing_window) {
- if(window.window)
+ if(window_created)
return false;
- return mgl_window_init_from_existing_window(&window, existing_window) == 0;
+
+ if(mgl_window_init_from_existing_window(&window, existing_window) == 0) {
+ window_created = true;
+ return true;
+ }
+ return false;
}
bool Window::poll_event(Event &event) {
@@ -197,7 +207,7 @@ namespace mgl {
}
WindowHandle Window::get_system_handle() const {
- return window.window;
+ return mgl_window_get_system_handle(&window);
}
mgl_window* Window::internal_window() {