aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/cru/platform/gui/sdl/OpenGLRenderer.h25
-rw-r--r--include/cru/platform/gui/sdl/Window.h5
2 files changed, 27 insertions, 3 deletions
diff --git a/include/cru/platform/gui/sdl/OpenGLRenderer.h b/include/cru/platform/gui/sdl/OpenGLRenderer.h
new file mode 100644
index 00000000..2db9d68d
--- /dev/null
+++ b/include/cru/platform/gui/sdl/OpenGLRenderer.h
@@ -0,0 +1,25 @@
+#pragma once
+
+#include "gl.h"
+
+#include <cru/base/Base.h>
+
+#include <SDL3/SDL_video.h>
+
+namespace cru::platform::gui::sdl {
+class SdlWindow;
+
+class SdlOpenGLRenderer {
+ CRU_DEFINE_CLASS_LOG_TAG("cru::platform::gui::sdl::SdlOpenGLRenderer")
+ public:
+ explicit SdlOpenGLRenderer(SdlWindow* window);
+ ~SdlOpenGLRenderer();
+
+ private:
+ SdlWindow* window_;
+ SDL_Window* sdl_window_;
+ SDL_WindowID sdl_window_id_;
+ SDL_GLContext sdl_gl_context_;
+ GladGLContext glad_gl_context_;
+};
+} // namespace cru::platform::gui::sdl
diff --git a/include/cru/platform/gui/sdl/Window.h b/include/cru/platform/gui/sdl/Window.h
index 080575f3..28837c71 100644
--- a/include/cru/platform/gui/sdl/Window.h
+++ b/include/cru/platform/gui/sdl/Window.h
@@ -8,7 +8,7 @@
#include <SDL3/SDL_video.h>
#ifdef __unix
-#include "gl.h"
+#include "OpenGLRenderer.h"
#endif
namespace cru::platform::gui::sdl {
@@ -118,8 +118,7 @@ class SdlWindow : public SdlResource, public virtual INativeWindow {
void UnixOnDestroyWindow();
private:
- SDL_GLContext sdl_gl_context_;
- std::unique_ptr<GladGLContext> glad_gl_context_;
+ std::unique_ptr<SdlOpenGLRenderer> renderer_;
#endif
};
} // namespace cru::platform::gui::sdl