[colobot] 256/377: Changed CGL33Device requirement to OpenGL 3.2

Didier Raboud odyx at moszumanska.debian.org
Wed Mar 30 13:34:24 UTC 2016


This is an automated email from the git hooks/post-receive script.

odyx pushed a commit to branch debian/master
in repository colobot.

commit 898001e0652bb45c0036dc7de4628bd1e2a46806
Author: Tomasz Kapuściński <tomaszkax86 at gmail.com>
Date:   Wed Feb 10 22:50:40 2016 +0100

    Changed CGL33Device requirement to OpenGL 3.2
---
 src/graphics/opengl/gl33device.cpp | 26 +++++++++++++++++++-------
 src/graphics/opengl/glutil.cpp     |  9 +++++++++
 src/graphics/opengl/glutil.h       |  2 ++
 3 files changed, 30 insertions(+), 7 deletions(-)

diff --git a/src/graphics/opengl/gl33device.cpp b/src/graphics/opengl/gl33device.cpp
index b088646..61023d8 100644
--- a/src/graphics/opengl/gl33device.cpp
+++ b/src/graphics/opengl/gl33device.cpp
@@ -186,13 +186,13 @@ bool CGL33Device::Create()
         sscanf(version, "%d.%d", &m_glMajor, &m_glMinor);
 
         int glVersion = 10 * m_glMajor + m_glMinor;
-        if (glVersion < 30)
+        if (glVersion < 32)
         {
             GetLogger()->Error("Unsupported OpenGL version: %d.%d\n", m_glMajor, m_glMinor);
-            GetLogger()->Error("OpenGL 3.0 or newer is required to use this engine.\n");
-            m_errorMessage = "It seems your graphics card does not support OpenGL 3.0.\n";
+            GetLogger()->Error("OpenGL 3.2 or newer is required to use this engine.\n");
+            m_errorMessage = "It seems your graphics card does not support OpenGL 3.2.\n";
             m_errorMessage += "Please make sure you have appropriate hardware and newest drivers installed.\n";
-            m_errorMessage += "(OpenGL 3.0 is roughly equivalent to Direct3D 10)\n\n";
+            m_errorMessage += "(OpenGL 3.2 is roughly equivalent to Direct3D 10)\n\n";
             m_errorMessage += GetHardwareInfo(false);
             return false;
         }
@@ -275,7 +275,11 @@ bool CGL33Device::Create()
         sprintf(filename, "shaders/vertex_shader_33_pervertex.glsl");
 
     shaders[0] = LoadShader(GL_VERTEX_SHADER, filename);
-    if (shaders[0] == 0) return false;
+    if (shaders[0] == 0)
+    {
+        m_errorMessage = GetLastShaderError();
+        return false;
+    }
 
     if (m_perPixelLighting)
         sprintf(filename, "shaders/fragment_shader_33_perpixel.glsl");
@@ -283,10 +287,18 @@ bool CGL33Device::Create()
         sprintf(filename, "shaders/fragment_shader_33_pervertex.glsl");
 
     shaders[1] = LoadShader(GL_FRAGMENT_SHADER, filename);
-    if (shaders[1] == 0) return false;
+    if (shaders[1] == 0)
+    {
+        m_errorMessage = GetLastShaderError();
+        return false;
+    }
 
     m_shaderProgram = LinkProgram(2, shaders);
-    if (m_shaderProgram == 0) return false;
+    if (m_shaderProgram == 0)
+    {
+        m_errorMessage = GetLastShaderError();
+        return false;
+    }
 
     glDeleteShader(shaders[0]);
     glDeleteShader(shaders[1]);
diff --git a/src/graphics/opengl/glutil.cpp b/src/graphics/opengl/glutil.cpp
index 41caf2e..72ea019 100644
--- a/src/graphics/opengl/glutil.cpp
+++ b/src/graphics/opengl/glutil.cpp
@@ -211,6 +211,13 @@ GLenum TranslateTextureCoordinateGen(int index)
     return textureCoordGen[index];
 }
 
+std::string lastShaderError;
+
+std::string GetLastShaderError()
+{
+    return lastShaderError;
+}
+
 GLint LoadShader(GLint type, const char* filename)
 {
     PHYSFS_file *file = PHYSFS_openRead(filename);
@@ -244,6 +251,7 @@ GLint LoadShader(GLint type, const char* filename)
         glGetShaderInfoLog(shader, len + 1, nullptr, message.get());
 
         GetLogger()->Error("Shader compilation error occured!\n%s\n", message.get());
+        lastShaderError = std::string("Shader compilation error occured!\n\n") + std::string(message.get());
 
         glDeleteShader(shader);
         return 0;
@@ -276,6 +284,7 @@ GLint LinkProgram(int count, GLint shaders[])
         glGetProgramInfoLog(program, len + 1, nullptr, message.get());
 
         GetLogger()->Error("Shader program linking error occured!\n%s\n", message.get());
+        lastShaderError = std::string("Shader program linking error occured!\n\n") + std::string(message.get());
 
         glDeleteProgram(program);
 
diff --git a/src/graphics/opengl/glutil.h b/src/graphics/opengl/glutil.h
index 1c23140..5ae4ff1 100644
--- a/src/graphics/opengl/glutil.h
+++ b/src/graphics/opengl/glutil.h
@@ -74,6 +74,8 @@ GLenum TranslateTextureCoordinate(int index);
 
 GLenum TranslateTextureCoordinateGen(int index);
 
+std::string GetLastShaderError();
+
 GLint LoadShader(GLint type, const char* filename);
 
 GLint LinkProgram(int count, GLint shaders[]);

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/colobot.git



More information about the Pkg-games-commits mailing list