bad char
[vg.git] / src / shader.c
index f5e7b360da8e9703a5da66e18f4e83b43a2fdaa8..934d30d28c1ee2ead86f7a16632a136c637540ea 100644 (file)
@@ -8,6 +8,8 @@ struct uniform
 {
    char name[30];
    char type[20];
+
+   int array;
 }
 uniform_buffer[100];
 static int uniform_count;
@@ -44,6 +46,7 @@ static int compile_subshader( FILE *header, char *name )
             {
                start += 8;
                struct uniform *uf = &uniform_buffer[ uniform_count ++ ];
+               uf->array = 0;
                for( int i=0;; i++ )
                {
                   if( start[i] == '\0' )
@@ -54,6 +57,13 @@ static int compile_subshader( FILE *header, char *name )
                      start[i] = '\0';
                      strncpy( uf->name, start, sizeof(uf->name) );
                   }
+
+                  if( start[i] == '[' )
+                  {
+                     start[i] = '\0';
+                     strncpy( uf->name, start, sizeof(uf->name) );
+                     uf->array = 1;
+                  }
                   
                   if( start[i] == ' ' )
                   {
@@ -143,6 +153,8 @@ int main( int argc, char *argv[] )
       for( int i=0; i<uniform_count; i++ )
       {
          struct uniform *uf = &uniform_buffer[i];
+         if( uf->array ) continue;
+
          if( !strcmp(uf->type,"vec2") )
          {
             fprintf( header, "static void shader_%s_%s(v2f v){\n"