diff mbox

[Branch,~glmark2-dev/glmark2/trunk] Rev 71: Display shader compilation/linking info only if an error has occured.

Message ID 20110721123635.17019.60167.launchpad@loganberry.canonical.com
State Accepted
Headers show

Commit Message

alexandros.frantzis@linaro.org July 21, 2011, 12:36 p.m. UTC
------------------------------------------------------------
revno: 71
committer: Alexandros Frantzis <alexandros.frantzis@linaro.org>
timestamp: Tue 2011-01-25 13:19:56 +0200
message:
  Display shader compilation/linking info only if an error has occured.
modified:
  src/shader.cpp


--
lp:glmark2
https://code.launchpad.net/~glmark2-dev/glmark2/trunk

You are subscribed to branch lp:glmark2.
To unsubscribe from this branch go to https://code.launchpad.net/~glmark2-dev/glmark2/trunk/+edit-subscription
diff mbox

Patch

=== modified file 'src/shader.cpp'
--- src/shader.cpp	2010-12-12 13:49:10 +0000
+++ src/shader.cpp	2011-01-25 11:19:56 +0000
@@ -56,6 +56,7 @@ 
 {
     char *vertex_shader_source, *fragment_shader_source;
     char msg[512];
+    GLint status;
 
     mVertexShader = glCreateShader(GL_VERTEX_SHADER);
     mFragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
@@ -74,14 +75,20 @@ 
     free(fragment_shader_source);
 
     glCompileShader(mVertexShader);
-    glGetShaderInfoLog(mVertexShader, sizeof msg, NULL, msg);
-    if (strlen(msg) > 0)
-        printf("%s: %s", pVertexShaderFileName, msg);
+    glGetShaderiv(mVertexShader, GL_COMPILE_STATUS, &status);
+    if (status == GL_FALSE) {
+        glGetShaderInfoLog(mVertexShader, sizeof msg, NULL, msg);
+        fprintf(stderr, "Error compiling %s: %s", pVertexShaderFileName,
+                strlen(msg) > 0 ? msg : "[No info]");
+    }
 
     glCompileShader(mFragmentShader);
-    glGetShaderInfoLog(mFragmentShader, sizeof msg, NULL, msg);
-    if (strlen(msg) > 0)
-        printf("%s: %s\n", pFragmentShaderFileName, msg);
+    glGetShaderiv(mFragmentShader, GL_COMPILE_STATUS, &status);
+    if (status == GL_FALSE) {
+        glGetShaderInfoLog(mFragmentShader, sizeof msg, NULL, msg);
+        fprintf(stderr, "Error compiling %s: %s", pFragmentShaderFileName,
+                strlen(msg) > 0 ? msg : "[No info]");
+    }
 
     mShaderProgram = glCreateProgram();
     glAttachShader(mShaderProgram, mFragmentShader);
@@ -91,9 +98,12 @@ 
     glBindAttribLocation(mShaderProgram, TexCoordAttribLocation, "texcoord");
 
     glLinkProgram(mShaderProgram);
-    glGetProgramInfoLog(mShaderProgram, sizeof msg, NULL, msg);
-    if (strlen(msg) > 0)
-        printf("Shader Linking: %s\n", msg);
+    glGetProgramiv(mFragmentShader, GL_LINK_STATUS, &status);
+    if (status == GL_FALSE) {
+        glGetProgramInfoLog(mShaderProgram, sizeof msg, NULL, msg);
+        fprintf(stderr, "Error linking shader program: %s",
+                strlen(msg) > 0 ? msg : "[No info]");
+    }
 
     mLocations.ModelViewProjectionMatrix = glGetUniformLocation(mShaderProgram,
             "ModelViewProjectionMatrix");