diff options
| author | Yuqian Yang <crupest@crupest.life> | 2025-12-01 21:25:37 +0800 |
|---|---|---|
| committer | Yuqian Yang <crupest@crupest.life> | 2025-12-01 21:25:37 +0800 |
| commit | d5d65b703244dfcc31228439e91ad0cfebb76456 (patch) | |
| tree | 9550fdf372dc36fc512ba8af73168e1e9aae93bf /include/cru/platform/gui/sdl | |
| parent | d54732324827bcfdc75e684b6636c53c109757c4 (diff) | |
| download | cru-d5d65b703244dfcc31228439e91ad0cfebb76456.tar.gz cru-d5d65b703244dfcc31228439e91ad0cfebb76456.tar.bz2 cru-d5d65b703244dfcc31228439e91ad0cfebb76456.zip | |
Move out OpengGLRenderer.
Diffstat (limited to 'include/cru/platform/gui/sdl')
| -rw-r--r-- | include/cru/platform/gui/sdl/OpenGLRenderer.h | 25 | ||||
| -rw-r--r-- | include/cru/platform/gui/sdl/Window.h | 5 |
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 |
