feedback.h revision 8043bf555e14cf20826753d59d66d0cef7a5e5a0
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/mtypes.h"
31
32
33#if FEATURE_feedback
34
35#define _MESA_INIT_FEEDBACK_FUNCTIONS(driver, impl) \
36   do {                                             \
37      (driver)->RenderMode = impl ## RenderMode;    \
38   } while (0)
39
40extern void
41_mesa_feedback_vertex( GLcontext *ctx,
42                       const GLfloat win[4],
43                       const GLfloat color[4],
44                       const GLfloat texcoord[4] );
45
46
47static INLINE void
48_mesa_feedback_token( GLcontext *ctx, GLfloat token )
49{
50   if (ctx->Feedback.Count < ctx->Feedback.BufferSize) {
51      ctx->Feedback.Buffer[ctx->Feedback.Count] = token;
52   }
53   ctx->Feedback.Count++;
54}
55
56
57extern void
58_mesa_update_hitflag( GLcontext *ctx, GLfloat z );
59
60
61extern void
62_mesa_init_feedback_dispatch(struct _glapi_table *disp);
63
64#else /* FEATURE_feedback */
65
66#include "main/compiler.h"
67
68#define _MESA_INIT_FEEDBACK_FUNCTIONS(driver, impl) do { } while (0)
69
70static INLINE void
71_mesa_feedback_vertex( GLcontext *ctx,
72                       const GLfloat win[4],
73                       const GLfloat color[4],
74                       const GLfloat texcoord[4] )
75{
76   /* render mode is always GL_RENDER */
77   ASSERT_NO_FEATURE();
78}
79
80
81static INLINE void
82_mesa_feedback_token( GLcontext *ctx, GLfloat token )
83{
84   /* render mode is always GL_RENDER */
85   ASSERT_NO_FEATURE();
86}
87
88static INLINE void
89_mesa_update_hitflag( GLcontext *ctx, GLfloat z )
90{
91   /* render mode is always GL_RENDER */
92   ASSERT_NO_FEATURE();
93}
94
95static INLINE void
96_mesa_init_feedback_dispatch(struct _glapi_table *disp)
97{
98}
99
100#endif /* FEATURE_feedback */
101
102extern void
103_mesa_init_feedback( GLcontext *ctx );
104
105#endif /* FEEDBACK_H */
106