diff options
| author | Yuqian Yang <crupest@crupest.life> | 2025-12-04 22:23:45 +0800 |
|---|---|---|
| committer | Yuqian Yang <crupest@crupest.life> | 2025-12-05 03:03:21 +0800 |
| commit | 8dcca49f42627400773dcc707ebaa757cbeef37b (patch) | |
| tree | 4466c1552dffa62bba518f247acf1ba3a98d3685 /src/platform/gui/sdl/UiApplication.cpp | |
| parent | d5d65b703244dfcc31228439e91ad0cfebb76456 (diff) | |
| download | cru-8dcca49f42627400773dcc707ebaa757cbeef37b.tar.gz cru-8dcca49f42627400773dcc707ebaa757cbeef37b.tar.bz2 cru-8dcca49f42627400773dcc707ebaa757cbeef37b.zip | |
Impl sdl opengl renderer.
Diffstat (limited to 'src/platform/gui/sdl/UiApplication.cpp')
| -rw-r--r-- | src/platform/gui/sdl/UiApplication.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
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<SdlCursorManager>(); clipboard_ = std::make_unique<SdlClipboard>(); } @@ -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; } |
