GPU: bind builtin shader for immediate mode
immBindBuiltinProgram extends Gawain’s immBindProgram to use Blender’s library of built-in shader programs. It uses imm prefix instead of GPU_ so people won’t be tempted to call GPU_unbind_program() afterward. From my understanding, Apache code is not allowed to call GPL code, so this function needs to be in the GPU lib.
This commit is contained in:
parent
8e99eec026
commit
6c65e5a00c
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue