1/* 2 * Mesa 3-D graphics library 3 * 4 * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. 5 * 6 * Permission is hereby granted, free of charge, to any person obtaining a 7 * copy of this software and associated documentation files (the "Software"), 8 * to deal in the Software without restriction, including without limitation 9 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 10 * and/or sell copies of the Software, and to permit persons to whom the 11 * Software is furnished to do so, subject to the following conditions: 12 * 13 * The above copyright notice and this permission notice shall be included 14 * in all copies or substantial portions of the Software. 15 * 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 17 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 * OTHER DEALINGS IN THE SOFTWARE. 23 * 24 * Authors: 25 * Keith Whitwell <keithw@vmware.com> 26 */ 27 28#ifndef _TNL_H 29#define _TNL_H 30 31#include "main/glheader.h" 32 33struct gl_vertex_array; 34struct gl_context; 35struct 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 */ 42extern GLboolean 43_tnl_CreateContext( struct gl_context *ctx ); 44 45extern void 46_tnl_DestroyContext( struct gl_context *ctx ); 47 48extern 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 55extern void 56_tnl_wakeup( struct gl_context *ctx ); 57 58/* Driver configuration options: 59 */ 60extern void 61_tnl_need_projected_coords( struct gl_context *ctx, GLboolean flag ); 62 63 64/* Control whether T&L does per-vertex fog 65 */ 66extern void 67_tnl_allow_vertex_fog( struct gl_context *ctx, GLboolean value ); 68 69extern void 70_tnl_allow_pixel_fog( struct gl_context *ctx, GLboolean value ); 71 72extern GLboolean 73_tnl_program_string(struct gl_context *ctx, GLenum target, struct gl_program *program); 74 75struct _mesa_prim; 76struct _mesa_index_buffer; 77 78void 79_tnl_draw_prims(struct gl_context *ctx, 80 const struct _mesa_prim *prim, 81 GLuint nr_prims, 82 const struct _mesa_index_buffer *ib, 83 GLboolean index_bounds_valid, 84 GLuint min_index, 85 GLuint max_index, 86 struct gl_transform_feedback_object *tfb_vertcount, 87 unsigned stream, 88 struct gl_buffer_object *indirect ); 89 90extern void 91_tnl_RasterPos(struct gl_context *ctx, const GLfloat vObj[4]); 92 93extern void 94_tnl_validate_shine_tables( struct gl_context *ctx ); 95 96#endif 97