[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