- strncpy( uf->name, start, sizeof(uf->name) );
+ vg_strncpy( start, uf->name, sizeof(uf->name),
+ k_strncpy_always_add_null );
- strncpy( uf->name, start, sizeof(uf->name) );
+ vg_strncpy( start, uf->name, sizeof(uf->name),
+ k_strncpy_always_add_null );
- strncpy( uf->type, start, sizeof(uf->type) );
+
+ if( !type_set )
+ {
+ vg_strncpy( start, uf->type, sizeof(uf->type),
+ k_strncpy_always_add_null );
+ type_set = 1;
+ }
types[] =
{
{ "float", "float f", "glUniform1f(%s,f);" },
types[] =
{
{ "float", "float f", "glUniform1f(%s,f);" },
{ "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);" },
{ "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);" },
{ "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);" },
{ "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);" },
for( int i=0; i<vg_shaderbuild.uniform_count; i++ )
{
struct uniform *uf = &vg_shaderbuild.uniform_buffer[i];
for( int i=0; i<vg_shaderbuild.uniform_count; i++ )
{
struct uniform *uf = &vg_shaderbuild.uniform_buffer[i];