1afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach/*
2afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach * Mesa 3-D graphics library
35e3bc0c2a2bcdf59949410f94c9b705fc1281ce8Jouk Jansen *
4559aec47015b741e045d57362f7732b3a04f9450Brian Paul * Copyright (C) 1999-2008  Brian Paul   All Rights Reserved.
5559aec47015b741e045d57362f7732b3a04f9450Brian Paul * Copyright (C) 2009  VMware, Inc.  All Rights Reserved.
65e3bc0c2a2bcdf59949410f94c9b705fc1281ce8Jouk Jansen *
7afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach * Permission is hereby granted, free of charge, to any person obtaining a
8afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach * copy of this software and associated documentation files (the "Software"),
9afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach * to deal in the Software without restriction, including without limitation
10afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach * the rights to use, copy, modify, merge, publish, distribute, sublicense,
11afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach * and/or sell copies of the Software, and to permit persons to whom the
12afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach * Software is furnished to do so, subject to the following conditions:
135e3bc0c2a2bcdf59949410f94c9b705fc1281ce8Jouk Jansen *
14afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach * The above copyright notice and this permission notice shall be included
15afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach * in all copies or substantial portions of the Software.
165e3bc0c2a2bcdf59949410f94c9b705fc1281ce8Jouk Jansen *
17afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
203d8d5b298a268b119d840bc9bae0ee9e0c9244a9Kenneth Graunke * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
213d8d5b298a268b119d840bc9bae0ee9e0c9244a9Kenneth Graunke * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
223d8d5b298a268b119d840bc9bae0ee9e0c9244a9Kenneth Graunke * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
233d8d5b298a268b119d840bc9bae0ee9e0c9244a9Kenneth Graunke * OTHER DEALINGS IN THE SOFTWARE.
24afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach */
25afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach
26afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach#ifndef FEEDBACK_H
27afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach#define FEEDBACK_H
28afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach
29afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach
30301a510092859d2e214d64f4ac2ebe03d591c64bChia-I Wu#include "main/mtypes.h"
31afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach
32afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach
33f7fa946d1da96178e63e42dd8d8739d3e0f66e1dPaul Berryvoid GLAPIENTRY
34f7fa946d1da96178e63e42dd8d8739d3e0f66e1dPaul Berry_mesa_FeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer );
35f7fa946d1da96178e63e42dd8d8739d3e0f66e1dPaul Berryvoid GLAPIENTRY
36f7fa946d1da96178e63e42dd8d8739d3e0f66e1dPaul Berry_mesa_PassThrough( GLfloat token );
37f7fa946d1da96178e63e42dd8d8739d3e0f66e1dPaul Berryvoid GLAPIENTRY
38f7fa946d1da96178e63e42dd8d8739d3e0f66e1dPaul Berry_mesa_SelectBuffer( GLsizei size, GLuint *buffer );
39f7fa946d1da96178e63e42dd8d8739d3e0f66e1dPaul Berryvoid GLAPIENTRY
40f7fa946d1da96178e63e42dd8d8739d3e0f66e1dPaul Berry_mesa_InitNames( void );
41f7fa946d1da96178e63e42dd8d8739d3e0f66e1dPaul Berryvoid GLAPIENTRY
42f7fa946d1da96178e63e42dd8d8739d3e0f66e1dPaul Berry_mesa_LoadName( GLuint name );
43f7fa946d1da96178e63e42dd8d8739d3e0f66e1dPaul Berryvoid GLAPIENTRY
44f7fa946d1da96178e63e42dd8d8739d3e0f66e1dPaul Berry_mesa_PushName( GLuint name );
45f7fa946d1da96178e63e42dd8d8739d3e0f66e1dPaul Berryvoid GLAPIENTRY
46f7fa946d1da96178e63e42dd8d8739d3e0f66e1dPaul Berry_mesa_PopName( void );
47f7fa946d1da96178e63e42dd8d8739d3e0f66e1dPaul BerryGLint GLAPIENTRY
48c56d0a61b97b29cec851df4cd385f095e3876848Chad Versace_mesa_RenderMode( GLenum mode );
49c56d0a61b97b29cec851df4cd385f095e3876848Chad Versace
50559aec47015b741e045d57362f7732b3a04f9450Brian Paulextern void
51f9995b30756140724f41daf963fa06167912be7fKristian Høgsberg_mesa_feedback_vertex( struct gl_context *ctx,
52559aec47015b741e045d57362f7732b3a04f9450Brian Paul                       const GLfloat win[4],
53559aec47015b741e045d57362f7732b3a04f9450Brian Paul                       const GLfloat color[4],
54559aec47015b741e045d57362f7732b3a04f9450Brian Paul                       const GLfloat texcoord[4] );
55afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach
56afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach
579520f483b8f1e45fa474674b415554988de5d8d3Brian Paulstatic inline void
58f9995b30756140724f41daf963fa06167912be7fKristian Høgsberg_mesa_feedback_token( struct gl_context *ctx, GLfloat token )
59bf8a187f71bd667a0dc0f70164a897d8e62361a8Brian Paul{
60bf8a187f71bd667a0dc0f70164a897d8e62361a8Brian Paul   if (ctx->Feedback.Count < ctx->Feedback.BufferSize) {
61bf8a187f71bd667a0dc0f70164a897d8e62361a8Brian Paul      ctx->Feedback.Buffer[ctx->Feedback.Count] = token;
62bf8a187f71bd667a0dc0f70164a897d8e62361a8Brian Paul   }
63bf8a187f71bd667a0dc0f70164a897d8e62361a8Brian Paul   ctx->Feedback.Count++;
64bf8a187f71bd667a0dc0f70164a897d8e62361a8Brian Paul}
65bf8a187f71bd667a0dc0f70164a897d8e62361a8Brian Paul
66bf8a187f71bd667a0dc0f70164a897d8e62361a8Brian Paul
67559aec47015b741e045d57362f7732b3a04f9450Brian Paulextern void
68f9995b30756140724f41daf963fa06167912be7fKristian Høgsberg_mesa_update_hitflag( struct gl_context *ctx, GLfloat z );
69afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach
70afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach
71301a510092859d2e214d64f4ac2ebe03d591c64bChia-I Wuextern void
72f9995b30756140724f41daf963fa06167912be7fKristian Høgsberg_mesa_init_feedback( struct gl_context *ctx );
73afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cJochen Gerlach
74301a510092859d2e214d64f4ac2ebe03d591c64bChia-I Wu#endif /* FEEDBACK_H */
75