applied Keith's fix for the Loki ice bug
[mesa.git] / src / mesa / main / eval.h
1 /* $Id: eval.h,v 1.2 1999/11/11 01:22:26 brianp Exp $ */
2
3 /*
4 * Mesa 3-D graphics library
5 * Version: 3.3
6 *
7 * Copyright (C) 1999 Brian Paul All Rights Reserved.
8 *
9 * Permission is hereby granted, free of charge, to any person obtaining a
10 * copy of this software and associated documentation files (the "Software"),
11 * to deal in the Software without restriction, including without limitation
12 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
13 * and/or sell copies of the Software, and to permit persons to whom the
14 * Software is furnished to do so, subject to the following conditions:
15 *
16 * The above copyright notice and this permission notice shall be included
17 * in all copies or substantial portions of the Software.
18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
22 * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
23 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
24 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25 */
26
27
28 #ifndef EVAL_H
29 #define EVAL_H
30
31
32 #include "types.h"
33
34
35 extern void gl_init_eval( void );
36
37
38 extern GLuint _mesa_evaluator_components( GLenum target );
39
40
41 extern void gl_free_control_points( GLcontext *ctx,
42 GLenum target, GLfloat *data );
43
44
45 extern GLfloat *gl_copy_map_points1f( GLenum target,
46 GLint ustride, GLint uorder,
47 const GLfloat *points );
48
49 extern GLfloat *gl_copy_map_points1d( GLenum target,
50 GLint ustride, GLint uorder,
51 const GLdouble *points );
52
53 extern GLfloat *gl_copy_map_points2f( GLenum target,
54 GLint ustride, GLint uorder,
55 GLint vstride, GLint vorder,
56 const GLfloat *points );
57
58 extern GLfloat *gl_copy_map_points2d(GLenum target,
59 GLint ustride, GLint uorder,
60 GLint vstride, GLint vorder,
61 const GLdouble *points );
62
63
64 extern void gl_eval_vb( struct vertex_buffer *VB );
65
66
67 extern void
68 _mesa_Map1f( GLenum target, GLfloat u1, GLfloat u2, GLint stride,
69 GLint order, const GLfloat *points );
70
71 extern void
72 _mesa_Map2f( GLenum target,
73 GLfloat u1, GLfloat u2, GLint ustride, GLint uorder,
74 GLfloat v1, GLfloat v2, GLint vstride, GLint vorder,
75 const GLfloat *points );
76
77 extern void
78 _mesa_Map1d( GLenum target, GLdouble u1, GLdouble u2, GLint stride,
79 GLint order, const GLdouble *points );
80
81 extern void
82 _mesa_Map2d( GLenum target,
83 GLdouble u1, GLdouble u2, GLint ustride, GLint uorder,
84 GLdouble v1, GLdouble v2, GLint vstride, GLint vorder,
85 const GLdouble *points );
86
87 extern void
88 _mesa_MapGrid1f( GLint un, GLfloat u1, GLfloat u2 );
89
90 extern void
91 _mesa_MapGrid1d( GLint un, GLdouble u1, GLdouble u2 );
92
93 extern void
94 _mesa_MapGrid2f( GLint un, GLfloat u1, GLfloat u2,
95 GLint vn, GLfloat v1, GLfloat v2 );
96
97 extern void
98 _mesa_MapGrid2d( GLint un, GLdouble u1, GLdouble u2,
99 GLint vn, GLdouble v1, GLdouble v2 );
100
101 extern void
102 _mesa_GetMapdv( GLenum target, GLenum query, GLdouble *v );
103
104 extern void
105 _mesa_GetMapfv( GLenum target, GLenum query, GLfloat *v );
106
107 extern void
108 _mesa_GetMapiv( GLenum target, GLenum query, GLint *v );
109
110 extern void
111 _mesa_EvalMesh1( GLenum mode, GLint i1, GLint i2 );
112
113 extern void
114 _mesa_EvalMesh2( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 );
115
116 extern void
117 _mesa_EvalCoord1d( GLdouble u );
118
119 extern void
120 _mesa_EvalCoord1f( GLfloat u );
121
122 extern void
123 _mesa_EvalCoord1dv( const GLdouble *u );
124
125 extern void
126 _mesa_EvalCoord1fv( const GLfloat *u );
127
128 extern void
129 _mesa_EvalCoord2d( GLdouble u, GLdouble v );
130
131 extern void
132 _mesa_EvalCoord2f( GLfloat u, GLfloat v );
133
134 extern void
135 _mesa_EvalCoord2dv( const GLdouble *u );
136
137 extern void
138 _mesa_EvalCoord2fv( const GLfloat *u );
139
140 extern void
141 _mesa_EvalPoint1( GLint i );
142
143 extern void
144 _mesa_EvalPoint2( GLint i, GLint j );
145
146 #endif