summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorPaul Berry <stereotype441@gmail.com>2014-01-07 15:50:39 -0800
committerPaul Berry <stereotype441@gmail.com>2014-02-05 09:01:18 -0800
commit47d480e3e4850ef8934775570444feea503295d7 (patch)
treea5029c0584286c0ac5509a7c511a10840f2688b4 /src/mesa
parent9b34ae2e64fd29fd4cd1cf18f7dd09116e02dc96 (diff)
mesa/cs: Create the gl_compute_program struct, and the code to initialize it.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/main/mtypes.h7
-rw-r--r--src/mesa/program/program.c20
-rw-r--r--src/mesa/program/program.h5
3 files changed, 32 insertions, 0 deletions
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
@@ -279,6 +279,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.
*/
struct gl_program *
@@ -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
@@ -84,6 +84,11 @@ _mesa_init_geometry_program(struct gl_context *ctx,
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);
extern void