From 75e4c0b3b2b6497c4f81bfe5695e6570932162e9 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 18 Jun 2014 12:41:20 +0300 Subject: Add error logging if shader compilation failure. --- src/graphicsmanager.cpp | 7 +++++++ src/graphicsmanager.h | 2 ++ src/render/modernopenglgraphics.cpp | 5 +++++ 3 files changed, 14 insertions(+) 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."); -- cgit v1.2.3-60-g2f50