diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-06-18 12:41:20 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-06-18 12:41:20 +0300 |
commit | 75e4c0b3b2b6497c4f81bfe5695e6570932162e9 (patch) | |
tree | 39726638167458567f3252d792dc9e5478625190 | |
parent | 3fbd6dba28d48db538bfe12493e205013fcfe2ae (diff) | |
download | plus-75e4c0b3b2b6497c4f81bfe5695e6570932162e9.tar.gz plus-75e4c0b3b2b6497c4f81bfe5695e6570932162e9.tar.bz2 plus-75e4c0b3b2b6497c4f81bfe5695e6570932162e9.tar.xz plus-75e4c0b3b2b6497c4f81bfe5695e6570932162e9.zip |
Add error logging if shader compilation failure.
-rw-r--r-- | src/graphicsmanager.cpp | 7 | ||||
-rw-r--r-- | src/graphicsmanager.h | 2 | ||||
-rw-r--r-- | src/render/modernopenglgraphics.cpp | 5 |
3 files changed, 14 insertions, 0 deletions
diff --git a/src/graphicsmanager.cpp b/src/graphicsmanager.cpp index 4661563e2..bc836d381 100644 --- a/src/graphicsmanager.cpp +++ b/src/graphicsmanager.cpp @@ -1188,6 +1188,13 @@ std::string GraphicsManager::errorToString(const GLenum error) return ""; } +void GraphicsManager::logError() +{ + const GLenum error = GraphicsManager::getLastError(); + if (error != GL_NO_ERROR) + logger->log(errorToString(error)); +} + void GraphicsManager::detectVideoSettings() { config.setValue("videodetected", true); diff --git a/src/graphicsmanager.h b/src/graphicsmanager.h index 963e8dbb7..a0af8c41b 100644 --- a/src/graphicsmanager.h +++ b/src/graphicsmanager.h @@ -156,6 +156,8 @@ class GraphicsManager final static std::string errorToString(const GLenum error) A_WARN_UNUSED; + static void logError(); + void updateDebugLog() const; std::string getGLVersion() const diff --git a/src/render/modernopenglgraphics.cpp b/src/render/modernopenglgraphics.cpp index a166f64b9..96ce5e1ef 100644 --- a/src/render/modernopenglgraphics.cpp +++ b/src/render/modernopenglgraphics.cpp @@ -162,6 +162,11 @@ void ModernOpenGLGraphics::postInit() logger->log("Compiling shaders"); mProgram = shaders.getSimpleProgram(); + if (!mProgram) + { + graphicsManager.logError(); + logger->safeError("Shader creation error. See manaplus.log."); + } mProgramId = mProgram->getProgramId(); if (!mProgram) logger->error("Shaders compilation error."); |