X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=vg_build_utils_shader.h;h=642e7fc4003ec4d734bc0db12820602a4df0a261;hb=3b841cc427adddeeb5b624d254587a45622d506d;hp=1c81c41822dd0532a4273c14bebdae3d97a3ea54;hpb=0aea2ef68a5ed32fc940673402a1b4b67f38d4d3;p=vg.git diff --git a/vg_build_utils_shader.h b/vg_build_utils_shader.h index 1c81c41..642e7fc 100644 --- a/vg_build_utils_shader.h +++ b/vg_build_utils_shader.h @@ -45,13 +45,15 @@ static void parse_uniform_name( char *start, struct uniform *uf ) if( start[i] == ';' ) { start[i] = '\0'; - strncpy( uf->name, start, sizeof(uf->name) ); + vg_strncpy( start, uf->name, sizeof(uf->name), + k_strncpy_always_add_null ); } if( start[i] == '[' ) { start[i] = '\0'; - strncpy( uf->name, start, sizeof(uf->name) ); + vg_strncpy( start, uf->name, sizeof(uf->name), + k_strncpy_always_add_null ); uf->array = 1; } @@ -61,7 +63,8 @@ static void parse_uniform_name( char *start, struct uniform *uf ) if( !type_set ) { - strncpy( uf->type, start, sizeof(uf->type) ); + vg_strncpy( start, uf->type, sizeof(uf->type), + k_strncpy_always_add_null ); type_set = 1; } start = start+i+1; @@ -194,12 +197,14 @@ int vg_build_shader( char *src_vert, /* path/to/vert.vs */ types[] = { { "float", "float f", "glUniform1f(%s,f);" }, + { "bool", "int b", "glUniform1i(%s,b);" }, { "vec2", "v2f v", "glUniform2fv(%s,1,v);" }, { "vec3", "v3f v", "glUniform3fv(%s,1,v);" }, { "vec4", "v4f v", "glUniform4fv(%s,1,v);" }, { "sampler2D", "int i", "glUniform1i(%s,i);" }, + { "samplerCube", "int i", "glUniform1i(%s,i);" }, { "mat4x3", "m4x3f m", "glUniformMatrix4x3fv(%s,1,GL_FALSE,(float*)m);" }, { "mat3", "m3x3f m", "glUniformMatrix3fv(%s,1,GL_FALSE,(float*)m);" }, { "mat4", "m4x4f m", "glUniformMatrix4fv(%s,1,GL_FALSE,(float*)m);" },