1.1 --- a/src/tools/genglsl.c Tue Feb 07 11:20:00 2012 +1000
1.2 +++ b/src/tools/genglsl.c Tue Feb 07 11:44:19 2012 +1000
1.5 fprintf( f, "void glsl_set_%s_%s(%s value); /* uniform %s %s */ \n", program->name, var->name, getCType(var->type,var->uniform), var->type, var->name );
1.7 - fprintf( f, "void glsl_set_%s_%s_pointer(%s ptr); /* attribute %s %s */ \n", program->name, var->name, getCType(var->type,var->uniform), var->type, var->name);
1.8 + fprintf( f, "void glsl_set_%s_%s_pointer(%s ptr, GLint stride); /* attribute %s %s */ \n", program->name, var->name, getCType(var->type,var->uniform), var->type, var->name);
1.12 @@ -373,7 +373,26 @@
1.14 for( program_ptr = data->programs; program_ptr != NULL; program_ptr = program_ptr->next ) {
1.15 program_t program = program_ptr->data;
1.16 - fprintf( f, "\nvoid glsl_use_%s() {\n glsl_use_program(prog_%s_id);\n}\n", program->name, program->name );
1.17 + fprintf( f, "\nstatic void glsl_cleanup_%s() {\n", program->name );
1.18 + for( var_ptr = program->variables; var_ptr != NULL; var_ptr = var_ptr->next ) {
1.19 + variable_t var = var_ptr->data;
1.20 + if( !var->uniform ) {
1.21 + fprintf( f, " glsl_disable_attrib(var_%s_%s_loc);\n", program->name, var->name );
1.24 + fprintf( f, "}\n");
1.26 + fprintf( f, "\nvoid glsl_use_%s() {\n", program->name );
1.27 + fprintf( f, " glsl_use_program(prog_%s_id);\n", program->name );
1.28 + for( var_ptr = program->variables; var_ptr != NULL; var_ptr = var_ptr->next ) {
1.29 + variable_t var = var_ptr->data;
1.30 + if( !var->uniform ) {
1.31 + fprintf( f, " glsl_enable_attrib(var_%s_%s_loc);\n", program->name, var->name );
1.34 + fprintf( f, " glsl_set_cleanup_fn(glsl_cleanup_%s);\n", program->name );
1.35 + fprintf( f, "}\n");
1.38 for( var_ptr = program->variables; var_ptr != NULL; var_ptr = var_ptr->next ) {
1.39 variable_t var = var_ptr->data;