From 8dcca49f42627400773dcc707ebaa757cbeef37b Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Thu, 4 Dec 2025 22:23:45 +0800 Subject: Impl sdl opengl renderer. --- src/platform/gui/sdl/UiApplication.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/platform/gui/sdl/UiApplication.cpp') diff --git a/src/platform/gui/sdl/UiApplication.cpp b/src/platform/gui/sdl/UiApplication.cpp index 42c50f4d..6064159d 100644 --- a/src/platform/gui/sdl/UiApplication.cpp +++ b/src/platform/gui/sdl/UiApplication.cpp @@ -25,6 +25,12 @@ SdlUiApplication::SdlUiApplication(graphics::IGraphicsFactory* graphics_factory, CheckSdlReturn(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS)); empty_event_type_ = SDL_RegisterEvents(1); + CheckSdlReturn(SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1)); + CheckSdlReturn(SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3)); + CheckSdlReturn(SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2)); + CheckSdlReturn(SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, + SDL_GL_CONTEXT_PROFILE_CORE)); + cursor_manager_ = std::make_unique(); clipboard_ = std::make_unique(); } @@ -49,8 +55,12 @@ int SdlUiApplication::Run() { auto timeout = timers_.NextTimeout(std::chrono::steady_clock::now()); SDL_Event event; - CheckSdlReturn(timeout ? SDL_WaitEventTimeout(&event, timeout->count()) - : SDL_WaitEvent(&event)); + if (timeout) { + SDL_WaitEventTimeout(&event, timeout->count()); + } else { + CheckSdlReturn(SDL_WaitEvent(&event)); + } + if (event.type == SDL_EVENT_QUIT) { break; } -- cgit v1.2.3