Home | History | Annotate | Download | only in main
      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 GLint GLAPIENTRY
     37 _mesa_RenderMode( GLenum mode );
     38 
     39 extern void
     40 _mesa_feedback_vertex( struct gl_context *ctx,
     41                        const GLfloat win[4],
     42                        const GLfloat color[4],
     43                        const GLfloat texcoord[4] );
     44 
     45 
     46 static inline void
     47 _mesa_feedback_token( struct gl_context *ctx, GLfloat token )
     48 {
     49    if (ctx->Feedback.Count < ctx->Feedback.BufferSize) {
     50       ctx->Feedback.Buffer[ctx->Feedback.Count] = token;
     51    }
     52    ctx->Feedback.Count++;
     53 }
     54 
     55 
     56 extern void
     57 _mesa_update_hitflag( struct gl_context *ctx, GLfloat z );
     58 
     59 
     60 extern void
     61 _mesa_init_feedback_dispatch(struct _glapi_table *disp);
     62 
     63 #else /* FEATURE_feedback */
     64 
     65 #include "main/compiler.h"
     66 
     67 static inline void
     68 _mesa_feedback_vertex( struct gl_context *ctx,
     69                        const GLfloat win[4],
     70                        const GLfloat color[4],
     71                        const GLfloat texcoord[4] )
     72 {
     73    /* render mode is always GL_RENDER */
     74    ASSERT_NO_FEATURE();
     75 }
     76 
     77 
     78 static inline void
     79 _mesa_feedback_token( struct gl_context *ctx, GLfloat token )
     80 {
     81    /* render mode is always GL_RENDER */
     82    ASSERT_NO_FEATURE();
     83 }
     84 
     85 static inline void
     86 _mesa_update_hitflag( struct gl_context *ctx, GLfloat z )
     87 {
     88    /* render mode is always GL_RENDER */
     89    ASSERT_NO_FEATURE();
     90 }
     91 
     92 static inline void
     93 _mesa_init_feedback_dispatch(struct _glapi_table *disp)
     94 {
     95 }
     96 
     97 #endif /* FEATURE_feedback */
     98 
     99 extern void
    100 _mesa_init_feedback( struct gl_context *ctx );
    101 
    102 #endif /* FEEDBACK_H */
    103