17117f1b4Smrg/*
27117f1b4Smrg * Mesa 3-D graphics library
37117f1b4Smrg *
44a49301eSmrg * Copyright (C) 1999-2008  Brian Paul   All Rights Reserved.
54a49301eSmrg * Copyright (C) 2009  VMware, Inc.  All Rights Reserved.
67117f1b4Smrg *
77117f1b4Smrg * Permission is hereby granted, free of charge, to any person obtaining a
87117f1b4Smrg * copy of this software and associated documentation files (the "Software"),
97117f1b4Smrg * to deal in the Software without restriction, including without limitation
107117f1b4Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense,
117117f1b4Smrg * and/or sell copies of the Software, and to permit persons to whom the
127117f1b4Smrg * Software is furnished to do so, subject to the following conditions:
137117f1b4Smrg *
147117f1b4Smrg * The above copyright notice and this permission notice shall be included
157117f1b4Smrg * in all copies or substantial portions of the Software.
167117f1b4Smrg *
177117f1b4Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
187117f1b4Smrg * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
197117f1b4Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
20af69d88dSmrg * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
21af69d88dSmrg * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
22af69d88dSmrg * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23af69d88dSmrg * OTHER DEALINGS IN THE SOFTWARE.
247117f1b4Smrg */
257117f1b4Smrg
267117f1b4Smrg#ifndef FEEDBACK_H
277117f1b4Smrg#define FEEDBACK_H
287117f1b4Smrg
297117f1b4Smrg
304a49301eSmrg#include "main/mtypes.h"
314a49301eSmrg
324a49301eSmrg
33af69d88dSmrgvoid GLAPIENTRY
34af69d88dSmrg_mesa_FeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer );
35af69d88dSmrgvoid GLAPIENTRY
36af69d88dSmrg_mesa_PassThrough( GLfloat token );
37af69d88dSmrgvoid GLAPIENTRY
38af69d88dSmrg_mesa_SelectBuffer( GLsizei size, GLuint *buffer );
39af69d88dSmrgvoid GLAPIENTRY
40af69d88dSmrg_mesa_InitNames( void );
41af69d88dSmrgvoid GLAPIENTRY
42af69d88dSmrg_mesa_LoadName( GLuint name );
43af69d88dSmrgvoid GLAPIENTRY
44af69d88dSmrg_mesa_PushName( GLuint name );
45af69d88dSmrgvoid GLAPIENTRY
46af69d88dSmrg_mesa_PopName( void );
47af69d88dSmrgGLint GLAPIENTRY
48af69d88dSmrg_mesa_RenderMode( GLenum mode );
497117f1b4Smrg
504a49301eSmrgextern void
513464ebd5Sriastradh_mesa_feedback_vertex( struct gl_context *ctx,
524a49301eSmrg                       const GLfloat win[4],
534a49301eSmrg                       const GLfloat color[4],
544a49301eSmrg                       const GLfloat texcoord[4] );
557117f1b4Smrg
567117f1b4Smrg
57af69d88dSmrgstatic inline void
583464ebd5Sriastradh_mesa_feedback_token( struct gl_context *ctx, GLfloat token )
594a49301eSmrg{
604a49301eSmrg   if (ctx->Feedback.Count < ctx->Feedback.BufferSize) {
614a49301eSmrg      ctx->Feedback.Buffer[ctx->Feedback.Count] = token;
624a49301eSmrg   }
634a49301eSmrg   ctx->Feedback.Count++;
644a49301eSmrg}
657117f1b4Smrg
667117f1b4Smrg
674a49301eSmrgextern void
683464ebd5Sriastradh_mesa_update_hitflag( struct gl_context *ctx, GLfloat z );
697117f1b4Smrg
707117f1b4Smrg
714a49301eSmrgextern void
723464ebd5Sriastradh_mesa_init_feedback( struct gl_context *ctx );
737117f1b4Smrg
744a49301eSmrg#endif /* FEEDBACK_H */
75