tnl.h revision c1f859d4
17117f1b4Smrg/*
27117f1b4Smrg * Mesa 3-D graphics library
37117f1b4Smrg * Version:  7.1
47117f1b4Smrg *
57117f1b4Smrg * Copyright (C) 1999-2007  Brian Paul   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
207117f1b4Smrg * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
217117f1b4Smrg * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
227117f1b4Smrg * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
237117f1b4Smrg *
247117f1b4Smrg * Authors:
257117f1b4Smrg *    Keith Whitwell <keith@tungstengraphics.com>
267117f1b4Smrg */
277117f1b4Smrg
287117f1b4Smrg#ifndef _TNL_H
297117f1b4Smrg#define _TNL_H
307117f1b4Smrg
31c1f859d4Smrg#include "main/mtypes.h"
327117f1b4Smrg
337117f1b4Smrg
347117f1b4Smrg
357117f1b4Smrg/* These are the public-access functions exported from tnl.  (A few
367117f1b4Smrg * more are currently hooked into dispatch directly by the module
377117f1b4Smrg * itself.)
387117f1b4Smrg */
397117f1b4Smrgextern GLboolean
407117f1b4Smrg_tnl_CreateContext( GLcontext *ctx );
417117f1b4Smrg
427117f1b4Smrgextern void
437117f1b4Smrg_tnl_DestroyContext( GLcontext *ctx );
447117f1b4Smrg
457117f1b4Smrgextern void
467117f1b4Smrg_tnl_InvalidateState( GLcontext *ctx, GLuint new_state );
477117f1b4Smrg
487117f1b4Smrg/* Functions to revive the tnl module after being unhooked from
497117f1b4Smrg * dispatch and/or driver callbacks.
507117f1b4Smrg */
517117f1b4Smrg
527117f1b4Smrgextern void
537117f1b4Smrg_tnl_wakeup( GLcontext *ctx );
547117f1b4Smrg
557117f1b4Smrg/* Driver configuration options:
567117f1b4Smrg */
577117f1b4Smrgextern void
587117f1b4Smrg_tnl_need_projected_coords( GLcontext *ctx, GLboolean flag );
597117f1b4Smrg
607117f1b4Smrg
617117f1b4Smrg/* Control whether T&L does per-vertex fog
627117f1b4Smrg */
637117f1b4Smrgextern void
647117f1b4Smrg_tnl_allow_vertex_fog( GLcontext *ctx, GLboolean value );
657117f1b4Smrg
667117f1b4Smrgextern void
677117f1b4Smrg_tnl_allow_pixel_fog( GLcontext *ctx, GLboolean value );
687117f1b4Smrg
697117f1b4Smrgextern void
707117f1b4Smrg_tnl_program_string(GLcontext *ctx, GLenum target, struct gl_program *program);
717117f1b4Smrg
727117f1b4Smrgstruct _mesa_prim;
737117f1b4Smrgstruct _mesa_index_buffer;
747117f1b4Smrg
757117f1b4Smrgvoid
767117f1b4Smrg_tnl_draw_prims( GLcontext *ctx,
777117f1b4Smrg		 const struct gl_client_array *arrays[],
787117f1b4Smrg		 const struct _mesa_prim *prim,
797117f1b4Smrg		 GLuint nr_prims,
807117f1b4Smrg		 const struct _mesa_index_buffer *ib,
817117f1b4Smrg		 GLuint min_index,
827117f1b4Smrg		 GLuint max_index);
837117f1b4Smrg
84c1f859d4Smrg
85c1f859d4Smrgextern void
86c1f859d4Smrg_tnl_RasterPos(GLcontext *ctx, const GLfloat vObj[4]);
87c1f859d4Smrg
887117f1b4Smrg#endif
89