}
#pragma GCC diagnostic pop
-#define SHADER_UNIFORM( NAME, U ) NAME##_auto_uniforms[ STR_STATIC_INDEX( NAME##_auto_names, U ) ]
-#define SHADER_UNIFORM_NAME( NAME, UID ) NAME##_auto_names[ UID ]
+#define SHADER_NAME( NAME ) (NAME##_static_shader.program)
+#define SHADER_USE( NAME ) glUseProgram( NAME##_static_shader.program )
+
+#define SHADER_UNIFORM( NAME, U ) NAME##_shader_uniforms[ STR_STATIC_INDEX( NAME##_shader_names, U ) ]
+#define SHADER_UNIFORM_NAME( NAME, UID ) NAME##_shader_names[ UID ]
#define STR_STATIC_INDEX( LIST, STR ) static_str_index( LIST, vg_list_size(LIST), STR )
#define UNIFORMS(...) __VA_ARGS__
{
vg_info( "Compile shader '%s'\n", shader->sym );
- GLuint vert, frag, geo;
+ GLuint vert, frag, geo = 0;
vert = vg_shader_subshader( shader->src_vert, GL_VERTEX_SHADER );
frag = vg_shader_subshader( shader->src_frag, GL_FRAGMENT_SHADER );
}
shader->program = glCreateProgram();
- if( shader->src_geo )
+ if( geo )
glAttachShader( shader->program, geo );
glAttachShader( shader->program, vert );
glDeleteShader( vert );
glDeleteShader( frag );
- if( shader->src_geo )
+ if( geo )
glDeleteShader( geo );
// Check for link errors