Tizen 2.0 Release
[profile/ivi/osmesa.git] / src / mesa / main / feedback.h
1 /*
2  * Mesa 3-D graphics library
3  * Version:  7.5
4  *
5  * Copyright (C) 1999-2008  Brian Paul   All Rights Reserved.
6  * Copyright (C) 2009  VMware, Inc.  All Rights Reserved.
7  *
8  * Permission is hereby granted, free of charge, to any person obtaining a
9  * copy of this software and associated documentation files (the "Software"),
10  * to deal in the Software without restriction, including without limitation
11  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
12  * and/or sell copies of the Software, and to permit persons to whom the
13  * Software is furnished to do so, subject to the following conditions:
14  *
15  * The above copyright notice and this permission notice shall be included
16  * in all copies or substantial portions of the Software.
17  *
18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
21  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
22  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
23  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24  */
25
26 #ifndef FEEDBACK_H
27 #define FEEDBACK_H
28
29
30 #include "main/mfeatures.h"
31 #include "main/mtypes.h"
32
33
34 #if FEATURE_feedback
35
36 extern void
37 _mesa_feedback_vertex( struct gl_context *ctx,
38                        const GLfloat win[4],
39                        const GLfloat color[4],
40                        const GLfloat texcoord[4] );
41
42
43 static INLINE void
44 _mesa_feedback_token( struct gl_context *ctx, GLfloat token )
45 {
46    if (ctx->Feedback.Count < ctx->Feedback.BufferSize) {
47       ctx->Feedback.Buffer[ctx->Feedback.Count] = token;
48    }
49    ctx->Feedback.Count++;
50 }
51
52
53 extern void
54 _mesa_update_hitflag( struct gl_context *ctx, GLfloat z );
55
56
57 extern void
58 _mesa_init_feedback_dispatch(struct _glapi_table *disp);
59
60 #else /* FEATURE_feedback */
61
62 #include "main/compiler.h"
63
64 static INLINE void
65 _mesa_feedback_vertex( struct gl_context *ctx,
66                        const GLfloat win[4],
67                        const GLfloat color[4],
68                        const GLfloat texcoord[4] )
69 {
70    /* render mode is always GL_RENDER */
71    ASSERT_NO_FEATURE();
72 }
73
74
75 static INLINE void
76 _mesa_feedback_token( struct gl_context *ctx, GLfloat token )
77 {
78    /* render mode is always GL_RENDER */
79    ASSERT_NO_FEATURE();
80 }
81
82 static INLINE void
83 _mesa_update_hitflag( struct gl_context *ctx, GLfloat z )
84 {
85    /* render mode is always GL_RENDER */
86    ASSERT_NO_FEATURE();
87 }
88
89 static INLINE void
90 _mesa_init_feedback_dispatch(struct _glapi_table *disp)
91 {
92 }
93
94 #endif /* FEATURE_feedback */
95
96 extern void
97 _mesa_init_feedback( struct gl_context *ctx );
98
99 #endif /* FEEDBACK_H */