mesa: Add ARB_query_buffer_object extension flag
[mesa.git] / src / mesa / main / pipelineobj.h
index 56d32ccef742b1f7ea751c95d92d0520509fc833..fbcb7659249aeb37375ec38588ce584183f2479d 100644 (file)
@@ -34,6 +34,42 @@ extern "C" {
 
 struct _glapi_table;
 struct gl_context;
+struct gl_pipeline_object;
+
+extern void
+_mesa_delete_pipeline_object(struct gl_context *ctx, struct gl_pipeline_object *obj);
+
+extern void
+_mesa_init_pipeline(struct gl_context *ctx);
+
+extern void
+_mesa_free_pipeline_data(struct gl_context *ctx);
+
+extern struct gl_pipeline_object *
+_mesa_lookup_pipeline_object(struct gl_context *ctx, GLuint id);
+
+extern void
+_mesa_reference_pipeline_object_(struct gl_context *ctx,
+                                 struct gl_pipeline_object **ptr,
+                                 struct gl_pipeline_object *obj);
+
+static inline void
+_mesa_reference_pipeline_object(struct gl_context *ctx,
+                                struct gl_pipeline_object **ptr,
+                                struct gl_pipeline_object *obj)
+{
+   if (*ptr != obj)
+      _mesa_reference_pipeline_object_(ctx, ptr, obj);
+}
+
+extern void
+_mesa_bind_pipeline(struct gl_context *ctx,
+                    struct gl_pipeline_object *pipe);
+
+extern GLboolean
+_mesa_validate_program_pipeline(struct gl_context * ctx,
+                                struct gl_pipeline_object *pipe);
+
 
 extern void GLAPIENTRY
 _mesa_UseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program);
@@ -50,6 +86,9 @@ _mesa_DeleteProgramPipelines(GLsizei n, const GLuint *pipelines);
 extern void GLAPIENTRY
 _mesa_GenProgramPipelines(GLsizei n, GLuint *pipelines);
 
+void GLAPIENTRY
+_mesa_CreateProgramPipelines(GLsizei n, GLuint *pipelines);
+
 extern GLboolean GLAPIENTRY
 _mesa_IsProgramPipeline(GLuint pipeline);