From 47d480e3e4850ef8934775570444feea503295d7 Mon Sep 17 00:00:00 2001 From: Paul Berry Date: Tue, 7 Jan 2014 15:50:39 -0800 Subject: [PATCH] mesa/cs: Create the gl_compute_program struct, and the code to initialize it. Reviewed-by: Matt Turner --- src/mesa/main/mtypes.h | 7 +++++++ src/mesa/program/program.c | 20 ++++++++++++++++++++ src/mesa/program/program.h | 5 +++++ 3 files changed, 32 insertions(+) diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index b793227f076..6af4db65c2e 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -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. */ diff --git a/src/mesa/program/program.c b/src/mesa/program/program.c index ea8eb0d3a7a..fa80bc58c9a 100644 --- a/src/mesa/program/program.c +++ b/src/mesa/program/program.c @@ -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; diff --git a/src/mesa/program/program.h b/src/mesa/program/program.h index 4351e05331a..ef698242ffa 100644 --- a/src/mesa/program/program.h +++ b/src/mesa/program/program.h @@ -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); -- 2.30.2