Mesa (master): mesa/cs: Create the gl_compute_program struct, and the code to initialize it.

Paul Berry stereotype441 at kemper.freedesktop.org
Wed Feb 5 17:25:59 UTC 2014


Module: Mesa
Branch: master
Commit: 47d480e3e4850ef8934775570444feea503295d7
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=47d480e3e4850ef8934775570444feea503295d7

Author: Paul Berry <stereotype441 at gmail.com>
Date:   Tue Jan  7 15:50:39 2014 -0800

mesa/cs: Create the gl_compute_program struct, and the code to initialize it.

Reviewed-by: Matt Turner <mattst88 at gmail.com>

---

 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 b793227..6af4db6 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 ea8eb0d..fa80bc5 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 4351e05..ef69824 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




More information about the mesa-commit mailing list