blob: 7f732cb3b5371b82426af1a549e012f54b15d021 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#include "cru/platform/gui/sdl/OpenGLRenderer.h"
#include "cru/base/log/Logger.h"
#include "cru/platform/gui/sdl/Window.h"
namespace cru::platform::gui::sdl {
SdlOpenGLRenderer::SdlOpenGLRenderer(SdlWindow* window) {
assert(window);
assert(window->GetSdlWindow());
window_ = window;
sdl_window_ = window->GetSdlWindow();
sdl_window_id_ = window->GetSdlWindowId();
sdl_gl_context_ = SDL_GL_CreateContext(sdl_window_);
if (!sdl_gl_context_) {
throw SdlException("Failed to create sdl gl context.");
}
CheckSdlReturn(SDL_GL_MakeCurrent(sdl_window_, sdl_gl_context_));
auto version = gladLoadGLContext(&glad_gl_context_, SDL_GL_GetProcAddress);
CRU_LOG_TAG_DEBUG("SDL window id {}, openGL version: {}.", sdl_window_id_,
version);
}
SdlOpenGLRenderer::~SdlOpenGLRenderer() {
CheckSdlReturn(SDL_GL_DestroyContext(sdl_gl_context_));
}
} // namespace cru::platform::gui::sdl
|