summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-06-18 12:41:20 +0300
committerAndrei Karas <akaras@inbox.ru>2014-06-18 12:41:20 +0300
commit75e4c0b3b2b6497c4f81bfe5695e6570932162e9 (patch)
tree39726638167458567f3252d792dc9e5478625190
parent3fbd6dba28d48db538bfe12493e205013fcfe2ae (diff)
downloadmanaplus-75e4c0b3b2b6497c4f81bfe5695e6570932162e9.tar.gz
manaplus-75e4c0b3b2b6497c4f81bfe5695e6570932162e9.tar.bz2
manaplus-75e4c0b3b2b6497c4f81bfe5695e6570932162e9.tar.xz
manaplus-75e4c0b3b2b6497c4f81bfe5695e6570932162e9.zip
Add error logging if shader compilation failure.
-rw-r--r--src/graphicsmanager.cpp7
-rw-r--r--src/graphicsmanager.h2
-rw-r--r--src/render/modernopenglgraphics.cpp5
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.");