diff --git a/source/blender/gpu/GPU_shader.h b/source/blender/gpu/GPU_shader.h index 9306d7b0669..0e29780d516 100644 --- a/source/blender/gpu/GPU_shader.h +++ b/source/blender/gpu/GPU_shader.h @@ -98,10 +98,12 @@ typedef enum GPUBuiltinShader { GPUShader *GPU_shader_get_builtin_shader(GPUBuiltinShader shader); GPUShader *GPU_shader_get_builtin_fx_shader(int effects, bool persp); -void GPU_shader_bind_immediate(GPUBuiltinShader); - void GPU_shader_free_builtin_shaders(void); +/* Extend Gawain’s immBindProgram to use Blender’s library of built-in shader programs. + * Use immUnbindProgram() when done. */ +void immBindBuiltinProgram(GPUBuiltinShader); + /* Vertex attributes for shaders */ #define GPU_MAX_ATTRIB 32 diff --git a/source/blender/gpu/intern/gpu_shader.c b/source/blender/gpu/intern/gpu_shader.c index 0bd4fcd78a7..67f6545351e 100644 --- a/source/blender/gpu/intern/gpu_shader.c +++ b/source/blender/gpu/intern/gpu_shader.c @@ -464,13 +464,6 @@ void GPU_shader_bind(GPUShader *shader) GPU_ASSERT_NO_GL_ERRORS("Post Shader Bind"); } -void GPU_shader_bind_immediate(GPUBuiltinShader shader_id) -{ - GPUShader *shader = GPU_shader_get_builtin_shader(shader_id); - GPU_shader_bind(shader); - bind_attrib_locations(&immVertexFormat, shader->program); -} - void GPU_shader_unbind(void) { GPU_ASSERT_NO_GL_ERRORS("Pre Shader Unbind"); @@ -782,4 +775,8 @@ void GPU_shader_free_builtin_shaders(void) } } - +void immBindBuiltinProgram(GPUBuiltinShader shader_id) +{ + GPUShader *shader = GPU_shader_get_builtin_shader(shader_id); + immBindProgram(shader->program); +}