changeset 5215:7b6101f3ea58

Fixed compiling source shaders
author Sam Lantinga <slouken@libsdl.org>
date Sun, 06 Feb 2011 10:59:37 -0800
parents fb058f09061d
children 25ad4a50d34f
files src/render/opengles2/SDL_render_gles2.c
diffstat 1 files changed, 17 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/render/opengles2/SDL_render_gles2.c	Sun Feb 06 10:27:05 2011 -0800
+++ b/src/render/opengles2/SDL_render_gles2.c	Sun Feb 06 10:59:37 2011 -0800
@@ -608,7 +608,7 @@
     entry->id = glCreateShader(instance->type);
     if (instance->format == (GLenum)-1)
     {
-        glShaderSource(entry->id, 1, (const char **)&instance->data, &instance->length);
+        glShaderSource(entry->id, 1, (const char **)&instance->data, NULL);
         glCompileShader(entry->id);
         glGetShaderiv(entry->id, GL_COMPILE_STATUS, &compileSuccessful);
     }
@@ -619,7 +619,22 @@
     }
     if (glGetError() != GL_NO_ERROR || !compileSuccessful)
     {
-        SDL_SetError("Failed to load the specified shader");
+        char *info = NULL;
+        int length;
+
+        glGetShaderiv(entry->id, GL_INFO_LOG_LENGTH, &length);
+        if (length > 0) {
+            info = SDL_stack_alloc(char, length);
+            if (info) {
+                glGetShaderInfoLog(entry->id, length, &length, info);
+            }
+        }
+        if (info) {
+            SDL_SetError("Failed to load the shader: %s", info);
+            SDL_stack_free(info);
+        } else {
+            SDL_SetError("Failed to load the shader");
+        }
         glDeleteShader(entry->id);
         SDL_free(entry);
         return NULL;