mesa/cs: Create the gl_compute_program struct, and the code to initialize it.
Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
@@ -2181,6 +2181,13 @@ struct gl_fragment_program
|
||||
};
|
||||
|
||||
|
||||
/** Compute program object */
|
||||
struct gl_compute_program
|
||||
{
|
||||
struct gl_program Base; /**< base class */
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* State common to vertex and fragment programs.
|
||||
*/
|
||||
|
@@ -278,6 +278,21 @@ _mesa_init_vertex_program( struct gl_context *ctx, struct gl_vertex_program *pro
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Initialize a new compute program object.
|
||||
*/
|
||||
struct gl_program *
|
||||
_mesa_init_compute_program(struct gl_context *ctx,
|
||||
struct gl_compute_program *prog, GLenum target,
|
||||
GLuint id)
|
||||
{
|
||||
if (prog)
|
||||
return _mesa_init_program_struct( ctx, &prog->Base, target, id );
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Initialize a new geometry program object.
|
||||
*/
|
||||
@@ -324,6 +339,11 @@ _mesa_new_program(struct gl_context *ctx, GLenum target, GLuint id)
|
||||
CALLOC_STRUCT(gl_geometry_program),
|
||||
target, id);
|
||||
break;
|
||||
case GL_COMPUTE_PROGRAM_NV:
|
||||
prog = _mesa_init_compute_program(ctx,
|
||||
CALLOC_STRUCT(gl_compute_program),
|
||||
target, id);
|
||||
break;
|
||||
default:
|
||||
_mesa_problem(ctx, "bad target in _mesa_new_program");
|
||||
prog = NULL;
|
||||
|
@@ -83,6 +83,11 @@ _mesa_init_geometry_program(struct gl_context *ctx,
|
||||
struct gl_geometry_program *prog,
|
||||
GLenum target, GLuint id);
|
||||
|
||||
extern struct gl_program *
|
||||
_mesa_init_compute_program(struct gl_context *ctx,
|
||||
struct gl_compute_program *prog,
|
||||
GLenum target, GLuint id);
|
||||
|
||||
extern struct gl_program *
|
||||
_mesa_new_program(struct gl_context *ctx, GLenum target, GLuint id);
|
||||
|
||||
|
Reference in New Issue
Block a user