2
* Mesa 3-D graphics library
4
* Copyright (C) 2010 VMware, Inc. All Rights Reserved.
6
* Permission is hereby granted, free of charge, to any person obtaining a
7
* copy of this software and associated documentation files (the "Software"),
8
* to deal in the Software without restriction, including without limitation
9
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
10
* and/or sell copies of the Software, and to permit persons to whom the
11
* Software is furnished to do so, subject to the following conditions:
13
* The above copyright notice and this permission notice shall be included
14
* in all copies or substantial portions of the Software.
16
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
* THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
20
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25
#ifndef TRANSFORM_FEEDBACK_H
26
#define TRANSFORM_FEEDBACK_H
28
#include "main/mtypes.h"
32
_mesa_init_transform_feedback(GLcontext *ctx);
35
_mesa_free_transform_feedback(GLcontext *ctx);
37
#if FEATURE_EXT_transform_feedback
40
_mesa_validate_primitive_mode(GLcontext *ctx, GLenum mode);
43
_mesa_validate_transform_feedback_buffers(GLcontext *ctx);
47
_mesa_init_transform_feedback_functions(struct dd_function_table *driver);
50
_mesa_init_transform_feedback_dispatch(struct _glapi_table *disp);
53
/*** GL_EXT_transform_feedback ***/
55
extern void GLAPIENTRY
56
_mesa_BeginTransformFeedback(GLenum mode);
58
extern void GLAPIENTRY
59
_mesa_EndTransformFeedback(void);
61
extern void GLAPIENTRY
62
_mesa_BindBufferRange(GLenum target, GLuint index,
63
GLuint buffer, GLintptr offset, GLsizeiptr size);
65
extern void GLAPIENTRY
66
_mesa_BindBufferBase(GLenum target, GLuint index, GLuint buffer);
68
extern void GLAPIENTRY
69
_mesa_BindBufferOffsetEXT(GLenum target, GLuint index, GLuint buffer,
72
extern void GLAPIENTRY
73
_mesa_TransformFeedbackVaryings(GLuint program, GLsizei count,
74
const GLchar **varyings, GLenum bufferMode);
76
extern void GLAPIENTRY
77
_mesa_GetTransformFeedbackVarying(GLuint program, GLuint index,
78
GLsizei bufSize, GLsizei *length,
79
GLsizei *size, GLenum *type, GLchar *name);
83
/*** GL_ARB_transform_feedback2 ***/
85
extern void GLAPIENTRY
86
_mesa_GenTransformFeedbacks(GLsizei n, GLuint *names);
88
extern GLboolean GLAPIENTRY
89
_mesa_IsTransformFeedback(GLuint name);
91
extern void GLAPIENTRY
92
_mesa_BindTransformFeedback(GLenum target, GLuint name);
94
extern void GLAPIENTRY
95
_mesa_DeleteTransformFeedbacks(GLsizei n, const GLuint *names);
97
extern void GLAPIENTRY
98
_mesa_PauseTransformFeedback(void);
100
extern void GLAPIENTRY
101
_mesa_ResumeTransformFeedback(void);
103
extern void GLAPIENTRY
104
_mesa_DrawTransformFeedback(GLenum mode, GLuint name);
106
#else /* FEATURE_EXT_transform_feedback */
108
static INLINE GLboolean
109
_mesa_validate_primitive_mode(GLcontext *ctx, GLenum mode)
114
static INLINE GLboolean
115
_mesa_validate_transform_feedback_buffers(GLcontext *ctx)
121
_mesa_init_transform_feedback_functions(struct dd_function_table *driver)
126
_mesa_init_transform_feedback_dispatch(struct _glapi_table *disp)
130
#endif /* FEATURE_EXT_transform_feedback */
132
#endif /* TRANSFORM_FEEDBACK_H */