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.
|
* 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.
|
* 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),
|
CALLOC_STRUCT(gl_geometry_program),
|
||||||
target, id);
|
target, id);
|
||||||
break;
|
break;
|
||||||
|
case GL_COMPUTE_PROGRAM_NV:
|
||||||
|
prog = _mesa_init_compute_program(ctx,
|
||||||
|
CALLOC_STRUCT(gl_compute_program),
|
||||||
|
target, id);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
_mesa_problem(ctx, "bad target in _mesa_new_program");
|
_mesa_problem(ctx, "bad target in _mesa_new_program");
|
||||||
prog = NULL;
|
prog = NULL;
|
||||||
|
@@ -83,6 +83,11 @@ _mesa_init_geometry_program(struct gl_context *ctx,
|
|||||||
struct gl_geometry_program *prog,
|
struct gl_geometry_program *prog,
|
||||||
GLenum target, GLuint id);
|
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 *
|
extern struct gl_program *
|
||||||
_mesa_new_program(struct gl_context *ctx, GLenum target, GLuint id);
|
_mesa_new_program(struct gl_context *ctx, GLenum target, GLuint id);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user