Home | History | Annotate | Download | only in tnl
      1 /*
      2  * Mesa 3-D graphics library
      3  * Version:  7.1
      4  *
      5  * Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
      6  *
      7  * Permission is hereby granted, free of charge, to any person obtaining a
      8  * copy of this software and associated documentation files (the "Software"),
      9  * to deal in the Software without restriction, including without limitation
     10  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
     11  * and/or sell copies of the Software, and to permit persons to whom the
     12  * Software is furnished to do so, subject to the following conditions:
     13  *
     14  * The above copyright notice and this permission notice shall be included
     15  * in all copies or substantial portions of the Software.
     16  *
     17  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
     18  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     19  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     20  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
     21  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
     22  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
     23  *
     24  * Authors:
     25  *    Keith Whitwell <keith (at) tungstengraphics.com>
     26  */
     27 
     28 #ifndef _TNL_H
     29 #define _TNL_H
     30 
     31 #include "main/glheader.h"
     32 
     33 struct gl_client_array;
     34 struct gl_context;
     35 struct gl_program;
     36 
     37 
     38 /* These are the public-access functions exported from tnl.  (A few
     39  * more are currently hooked into dispatch directly by the module
     40  * itself.)
     41  */
     42 extern GLboolean
     43 _tnl_CreateContext( struct gl_context *ctx );
     44 
     45 extern void
     46 _tnl_DestroyContext( struct gl_context *ctx );
     47 
     48 extern void
     49 _tnl_InvalidateState( struct gl_context *ctx, GLuint new_state );
     50 
     51 /* Functions to revive the tnl module after being unhooked from
     52  * dispatch and/or driver callbacks.
     53  */
     54 
     55 extern void
     56 _tnl_wakeup( struct gl_context *ctx );
     57 
     58 /* Driver configuration options:
     59  */
     60 extern void
     61 _tnl_need_projected_coords( struct gl_context *ctx, GLboolean flag );
     62 
     63 
     64 /* Control whether T&L does per-vertex fog
     65  */
     66 extern void
     67 _tnl_allow_vertex_fog( struct gl_context *ctx, GLboolean value );
     68 
     69 extern void
     70 _tnl_allow_pixel_fog( struct gl_context *ctx, GLboolean value );
     71 
     72 extern GLboolean
     73 _tnl_program_string(struct gl_context *ctx, GLenum target, struct gl_program *program);
     74 
     75 struct _mesa_prim;
     76 struct _mesa_index_buffer;
     77 
     78 void
     79 _tnl_draw_prims( struct gl_context *ctx,
     80 		 const struct gl_client_array *arrays[],
     81 		 const struct _mesa_prim *prim,
     82 		 GLuint nr_prims,
     83 		 const struct _mesa_index_buffer *ib,
     84 		 GLuint min_index,
     85 		 GLuint max_index);
     86 
     87 void
     88 _tnl_vbo_draw_prims( struct gl_context *ctx,
     89 		     const struct _mesa_prim *prim,
     90 		     GLuint nr_prims,
     91 		     const struct _mesa_index_buffer *ib,
     92 		     GLboolean index_bounds_valid,
     93 		     GLuint min_index,
     94 		     GLuint max_index,
     95 		     struct gl_transform_feedback_object *tfb_vertcount );
     96 
     97 extern void
     98 _mesa_load_tracked_matrices(struct gl_context *ctx);
     99 
    100 extern void
    101 _tnl_RasterPos(struct gl_context *ctx, const GLfloat vObj[4]);
    102 
    103 extern void
    104 _tnl_validate_shine_tables( struct gl_context *ctx );
    105 
    106 #endif
    107