diff options
| author | Mel <einebeere@gmail.com> | 2024-04-17 00:12:56 +0200 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2024-04-17 00:12:56 +0200 |
| commit | 3ae8e66ee7c2c488dfe3c32457a26822eba8b236 (patch) | |
| tree | ee415e3b102de2f5c6d5bef7ae805006bae5c5e0 /src | |
| parent | 97c6939a26b3d4dcac843030aa9911aff6b2e5f6 (diff) | |
| download | meowcraft-3ae8e66ee7c2c488dfe3c32457a26822eba8b236.tar.zst meowcraft-3ae8e66ee7c2c488dfe3c32457a26822eba8b236.zip | |
Hack to fix GLEW EGL/GLX confusion error
Diffstat (limited to 'src')
| -rw-r--r-- | src/Render.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/Render.cpp b/src/Render.cpp index c4ed147..1089ad4 100644 --- a/src/Render.cpp +++ b/src/Render.cpp @@ -110,9 +110,17 @@ void Render::render_scene(Scene const& scene, GFX::Texture const& texture) const void Render::setup_gl() { GLenum error = glewInit(); - if (error != GLEW_OK) { - std::string error_string(reinterpret_cast<Char const*>(glewGetErrorString(error))); - throw std::runtime_error("Failed to load GL functions: " + error_string); + + // We get a NO_GLX_DISPLAY error on Linux/Wayland during GLEW initialization. + // Since we're not using GLX (under Wayland), it is presumably fine to ignore this error, + // and it seems to appear due to some sort of confusion in GLEW when to use GLX or EGL. + // See this GLEW issue: https://github.com/nigels-com/glew/issues/273 + if (error != GLEW_OK && error != GLEW_ERROR_NO_GLX_DISPLAY) { + Char error_code[8]; + snprintf(error_code, sizeof(error_code), "%X", error); + + std::string error_string { reinterpret_cast<Char const *>(glewGetErrorString(error)) }; + throw std::runtime_error("Failed to load GL functions: " + error_string + " (0x" + error_code + ")"); } } |
