From 4c72248ba2a7a5c98178fa2fc4a689bf7b945b5e Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 9 Mar 2016 21:02:36 +0100 Subject: [PATCH] Skip over precision statements before redeclaring builtins. Refs #207 * This is clearly blatantly just a hack for this one shader, but I refuse on principle to write an entire pre-processor just to figure out where to insert a redeclared block that should not be necessary. --- renderdoc/driver/gl/gl_shader_refl.cpp | 63 +++++++++++++++++++++++--- 1 file changed, 57 insertions(+), 6 deletions(-) diff --git a/renderdoc/driver/gl/gl_shader_refl.cpp b/renderdoc/driver/gl/gl_shader_refl.cpp index 0691b5242..b4237e328 100644 --- a/renderdoc/driver/gl/gl_shader_refl.cpp +++ b/renderdoc/driver/gl/gl_shader_refl.cpp @@ -200,6 +200,21 @@ static GLuint CreateSepProgram(const GLHookSet &gl, GLenum type, GLsizei numSour return 0; } +static bool isspacetab(char c) +{ + return c == '\t' || c == ' '; +} + +static bool isnewline(char c) +{ + return c == '\r' || c == '\n'; +} + +static bool iswhitespace(char c) +{ + return isspacetab(c) || isnewline(c); +} + GLuint MakeSeparableShaderProgram(const GLHookSet &gl, GLenum type, vector sources, vector *includepaths) { // in and out blocks are added separately, in case one is there already @@ -302,7 +317,7 @@ GLuint MakeSeparableShaderProgram(const GLHookSet &gl, GLenum type, vector