mesa/sso: Refactor implementation of _mesa_CreateShaderProgramEXT
This will allow the guts of the implementation to be shared with _mesa_CreateShaderProgramv. This was originally included in another patch, but it was split out by Ian Romanick. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
This commit is contained in:
parent
8ed8592fd6
commit
3659eade53
|
@ -1832,19 +1832,16 @@ _mesa_ActiveProgramEXT(GLuint program)
|
|||
return;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* For GL_EXT_separate_shader_objects
|
||||
*/
|
||||
GLuint GLAPIENTRY
|
||||
_mesa_CreateShaderProgramEXT(GLenum type, const GLchar *string)
|
||||
static GLuint
|
||||
_mesa_create_shader_program(struct gl_context* ctx, GLboolean separate,
|
||||
GLenum type, GLsizei count, const GLchar* const *strings)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
const GLuint shader = create_shader(ctx, type);
|
||||
GLuint program = 0;
|
||||
|
||||
if (shader) {
|
||||
shader_source(ctx, shader, _mesa_strdup(string));
|
||||
_mesa_ShaderSource(shader, count, strings, NULL);
|
||||
|
||||
compile_shader(ctx, shader);
|
||||
|
||||
program = create_shader_program(ctx);
|
||||
|
@ -1856,6 +1853,8 @@ _mesa_CreateShaderProgramEXT(GLenum type, const GLchar *string)
|
|||
shProg = _mesa_lookup_shader_program(ctx, program);
|
||||
sh = _mesa_lookup_shader(ctx, shader);
|
||||
|
||||
shProg->SeparateShader = separate;
|
||||
|
||||
get_shaderiv(ctx, shader, GL_COMPILE_STATUS, &compiled);
|
||||
if (compiled) {
|
||||
attach_shader(ctx, program, shader);
|
||||
|
@ -1918,6 +1917,17 @@ _mesa_copy_linked_program_data(gl_shader_stage type,
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* For GL_EXT_separate_shader_objects
|
||||
*/
|
||||
GLuint GLAPIENTRY
|
||||
_mesa_CreateShaderProgramEXT(GLenum type, const GLchar *string)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
|
||||
return _mesa_create_shader_program(ctx, GL_FALSE, type, 1, &string);
|
||||
}
|
||||
|
||||
/**
|
||||
* ARB_separate_shader_objects: Compile & Link Program
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue