Android: remove headers from LOCAL_SRC_FILES
[mesa.git] / src / mesa / main / transformfeedback.h
index 7aecd66a75a531fbd6149c7c7359c2977b1bb183..eb274ad65407b4acc9db66ed98e39c9569c7b511 100644 (file)
@@ -27,6 +27,7 @@
 #define TRANSFORM_FEEDBACK_H
 
 #include <stdbool.h>
+#include "bufferobj.h"
 #include "compiler.h"
 #include "glheader.h"
 #include "mtypes.h"
@@ -64,15 +65,18 @@ _mesa_EndTransformFeedback(void);
 
 extern void
 _mesa_bind_buffer_range_transform_feedback(struct gl_context *ctx,
+                                          struct gl_transform_feedback_object *obj,
                                           GLuint index,
                                           struct gl_buffer_object *bufObj,
                                           GLintptr offset,
-                                          GLsizeiptr size);
+                                          GLsizeiptr size, bool dsa);
 
 extern void
 _mesa_bind_buffer_base_transform_feedback(struct gl_context *ctx,
+                                         struct gl_transform_feedback_object *obj,
                                          GLuint index,
-                                         struct gl_buffer_object *bufObj);
+                                         struct gl_buffer_object *bufObj,
+                                         bool dsa);
 
 extern void GLAPIENTRY
 _mesa_BindBufferOffsetEXT(GLenum target, GLuint index, GLuint buffer,
@@ -101,6 +105,9 @@ _mesa_lookup_transform_feedback_object(struct gl_context *ctx, GLuint name);
 extern void GLAPIENTRY
 _mesa_GenTransformFeedbacks(GLsizei n, GLuint *names);
 
+extern void GLAPIENTRY
+_mesa_CreateTransformFeedbacks(GLsizei n, GLuint *names);
+
 extern GLboolean GLAPIENTRY
 _mesa_IsTransformFeedback(GLuint name);
 
@@ -127,4 +134,40 @@ extern bool
 _mesa_transform_feedback_is_using_program(struct gl_context *ctx,
                                           struct gl_shader_program *shProg);
 
+static inline void
+_mesa_set_transform_feedback_binding(struct gl_context *ctx,
+                                     struct gl_transform_feedback_object *tfObj, GLuint index,
+                                     struct gl_buffer_object *bufObj,
+                                     GLintptr offset, GLsizeiptr size)
+{
+   _mesa_reference_buffer_object(ctx, &tfObj->Buffers[index], bufObj);
+
+   tfObj->BufferNames[index]   = bufObj->Name;
+   tfObj->Offset[index]        = offset;
+   tfObj->RequestedSize[index] = size;
+
+   if (bufObj != ctx->Shared->NullBufferObj)
+      bufObj->UsageHistory |= USAGE_TRANSFORM_FEEDBACK_BUFFER;
+}
+
+/*** GL_ARB_direct_state_access ***/
+
+extern void GLAPIENTRY
+_mesa_TransformFeedbackBufferBase(GLuint xfb, GLuint index, GLuint buffer);
+
+extern void GLAPIENTRY
+_mesa_TransformFeedbackBufferRange(GLuint xfb, GLuint index, GLuint buffer,
+                                   GLintptr offset, GLsizeiptr size);
+
+extern void GLAPIENTRY
+_mesa_GetTransformFeedbackiv(GLuint xfb, GLenum pname, GLint *param);
+
+extern void GLAPIENTRY
+_mesa_GetTransformFeedbacki_v(GLuint xfb, GLenum pname, GLuint index,
+                              GLint *param);
+
+extern void GLAPIENTRY
+_mesa_GetTransformFeedbacki64_v(GLuint xfb, GLenum pname, GLuint index,
+                                GLint64 *param);
+
 #endif /* TRANSFORM_FEEDBACK_H */