ReactOS 0.4.16-dev-401-g45b008d
glsurfeval.h
Go to the documentation of this file.
1/*
2 * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
3 * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice including the dates of first publication and
13 * either this permission notice or a reference to
14 * http://oss.sgi.com/projects/FreeB/
15 * shall be included 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 * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
22 * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 * SOFTWARE.
24 *
25 * Except as contained in this notice, the name of Silicon Graphics, Inc.
26 * shall not be used in advertising or otherwise to promote the sale, use or
27 * other dealings in this Software without prior written authorization from
28 * Silicon Graphics, Inc.
29 */
30
31/*
32 * glsurfeval.h
33 *
34 */
35
36#ifndef __gluglsurfeval_h_
37#define __gluglsurfeval_h_
38
39#include "basicsurfeval.h"
40#include "bezierPatchMesh.h" //in case output triangles
41#include <GL/gl.h>
42#include <GL/glu.h>
43
44class SurfaceMap;
46class StoredVertex;
47
48#define TYPECOORD 1
49#define TYPEPOINT 2
50
51/* Cache up to 3 vertices from tmeshes */
52#define VERTEX_CACHE_SIZE 3
53
54/*for internal evaluator callback stuff*/
55#ifndef IN_MAX_BEZIER_ORDER
56#define IN_MAX_BEZIER_ORDER 40 /*XXX should be bigger than machine order*/
57#endif
58
59#ifndef IN_MAX_DIMENSION
60#define IN_MAX_DIMENSION 4
61#endif
62
63typedef struct surfEvalMachine{
64 REAL uprime;//cached previusly evaluated uprime.
66 int k; /*the dimension*/
70 int uorder;
74 int vorder;
76 REAL ucoeff[IN_MAX_BEZIER_ORDER]; /*cache the polynomial values*/
78 REAL ucoeffDeriv[IN_MAX_BEZIER_ORDER]; /*cache the polynomial derivatives*/
81
82
83
85public:
86 StoredVertex() { type = 0; coord[0] = 0; coord[1] = 0; point[0] = 0; point[1] = 0; }
89 {coord[0] = x; coord[1] = y; type = TYPECOORD; }
90 void saveEvalPoint(long x, long y)
91 {point[0] = x; point[1] = y; type = TYPEPOINT; }
93
94private:
95 int type;
97 long point[2];
98};
99
101public:
103 virtual ~OpenGLSurfaceEvaluator( void );
104 void polymode( long style );
105 void range2f( long, REAL *, REAL * );
106 void domain2f( REAL, REAL, REAL, REAL );
107 void addMap( SurfaceMap * ) { }
108
109 void enable( long );
110 void disable( long );
111 void bgnmap2f( long );
112 void map2f( long, REAL, REAL, long, long,
113 REAL, REAL, long, long, REAL * );
114 void mapgrid2f( long, REAL, REAL, long, REAL, REAL );
115 void mapmesh2f( long, long, long, long, long );
116 void evalcoord2f( long, REAL, REAL );
117 void evalpoint2i( long, long );
118 void endmap2f( void );
119
120 void bgnline( void );
121 void endline( void );
122 void bgnclosedline( void );
123 void endclosedline( void );
124 void bgntmesh( void );
125 void swaptmesh( void );
126 void endtmesh( void );
127 void bgnqstrip( void );
128 void endqstrip( void );
129
130 void bgntfan( void );
131 void endtfan( void );
132 void evalUStrip(int n_upper, REAL v_upper, REAL* upper_val,
133 int n_lower, REAL v_lower, REAL* lower_val);
134 void evalVStrip(int n_left, REAL u_left, REAL* left_val,
135 int n_right, REAL u_right, REAL* right_val);
136
137 void coord2f( REAL, REAL );
138 void point2i( long, long );
139
140 void newtmeshvert( REAL, REAL );
141 void newtmeshvert( long, long );
142
143#ifdef _WIN32
144 void putCallBack(GLenum which, void (GLAPIENTRY *fn)() );
145#else
147#endif
148
150 {
151 return output_triangles;
152 }
154 {
156 }
157
159 {
161 }
162
164 {
166 }
167
169 {
170 userData = data;
171 }
172
173 /**************begin for LOD_eval_list***********/
174 void LOD_eval_list(int level);
175
176
177
178
179private:
182 int which;
184
185 GLint gl_polygon_mode[2];/*to save and restore so that
186 *no side effect
187 */
188 bezierPatchMesh *global_bpm; //for output triangles
189 int output_triangles; //true 1 or false 0
190
191
192
193 void (GLAPIENTRY *beginCallBackN) (GLenum type);
194 void (GLAPIENTRY *endCallBackN) (void);
195 void (GLAPIENTRY *vertexCallBackN) (const GLfloat *vert);
196 void (GLAPIENTRY *normalCallBackN) (const GLfloat *normal);
197 void (GLAPIENTRY *colorCallBackN) (const GLfloat *color);
198 void (GLAPIENTRY *texcoordCallBackN) (const GLfloat *texcoord);
199
200 void (GLAPIENTRY *beginCallBackData) (GLenum type, void* data);
201 void (GLAPIENTRY *endCallBackData) (void* data);
202 void (GLAPIENTRY *vertexCallBackData) (const GLfloat *vert, void* data);
203 void (GLAPIENTRY *normalCallBackData) (const GLfloat *normal, void* data);
204 void (GLAPIENTRY *colorCallBackData) (const GLfloat *color, void* data);
205 void (GLAPIENTRY *texcoordCallBackData) (const GLfloat *texcoord, void* data);
206
207 void beginCallBack (GLenum type, void* data);
208 void endCallBack (void* data);
209 void vertexCallBack (const GLfloat *vert, void* data);
210 void normalCallBack (const GLfloat *normal, void* data);
211 void colorCallBack (const GLfloat *color, void* data);
212 void texcoordCallBack (const GLfloat *texcoord, void* data);
213
214
215 void* userData; //the opaque pointer for Data callback functions.
216
217 /*LOD evaluation*/
218 void LOD_triangle(REAL A[2], REAL B[2], REAL C[2],
219 int level);
220 void LOD_eval(int num_vert, REAL* verts, int type, int level);
221
222 int LOD_eval_level; //set by LOD_eval_list()
223
224 /*************begin for internal evaluators*****************/
225
226 /*the following global variables are only defined in this file.
227 *They are used to cache the precomputed Bezier polynomial values.
228 *These calues may be used consecutively in which case we don't have
229 *recompute these values again.
230 */
231 int global_uorder; /*store the uorder in the previous evaluation*/
232 int global_vorder; /*store the vorder in the previous evaluation*/
237 int global_uorder_BV; /*store the uorder in the previous evaluation*/
238 int global_vorder_BV; /*store the vorder in the previous evaluation*/
239 int global_uorder_BU; /*store the uorder in the previous evaluation*/
240 int global_vorder_BU; /*store the vorder in the previous evaluation*/
241
242 REAL global_ucoeff[IN_MAX_BEZIER_ORDER]; /*cache the polynomial values*/
244 REAL global_ucoeffDeriv[IN_MAX_BEZIER_ORDER]; /*cache the polynomial derivatives*/
246
252
253 int global_ev_k; /*the dimension*/
263
270
271/*functions*/
272 void inDoDomain2WithDerivs(int k, REAL u, REAL v,
273 REAL u1, REAL u2, int uorder,
274 REAL v1, REAL v2, int vorder,
275 REAL *baseData,
276 REAL *retPoint, REAL *retdu, REAL *retdv);
277 void inPreEvaluate(int order, REAL vprime, REAL *coeff);
278 void inPreEvaluateWithDeriv(int order, REAL vprime, REAL *coeff, REAL *coeffDeriv);
279 void inComputeFirstPartials(REAL *p, REAL *pu, REAL *pv);
280 void inComputeNormal2(REAL *pu, REAL *pv, REAL *n);
281 void inDoEvalCoord2(REAL u, REAL v,
282 REAL *retPoint, REAL *retNormal);
284 REAL *retPoint, REAL *retNormal);
285 void inMap2f(int k,
286 REAL ulower,
287 REAL uupper,
288 int ustride,
289 int uorder,
290 REAL vlower,
291 REAL vupper,
292 int vstride,
293 int vorder,
294 REAL *ctlPoints);
295
296 void inMapGrid2f(int nu, REAL u0, REAL u1,
297 int nv, REAL v0, REAL v1);
298
299 void inEvalMesh2(int lowU, int lowV, int highU, int highV);
300 void inEvalPoint2(int i, int j);
301 void inEvalCoord2f(REAL u, REAL v);
302
303void inEvalULine(int n_points, REAL v, REAL* u_vals,
304 int stride, REAL ret_points[][3], REAL ret_normals[][3]);
305
306void inEvalVLine(int n_points, REAL u, REAL* v_vals,
307 int stride, REAL ret_points[][3], REAL ret_normals[][3]);
308
309void inEvalUStrip(int n_upper, REAL v_upper, REAL* upper_val,
310 int n_lower, REAL v_lower, REAL* lower_val
311 );
312void inEvalVStrip(int n_left, REAL u_left, REAL* left_val, int n_right, REAL u_right, REAL* right_val);
313
314void inPreEvaluateBV(int k, int uorder, int vorder, REAL vprime, REAL *baseData);
315void inPreEvaluateBU(int k, int uorder, int vorder, REAL uprime, REAL *baseData);
317 {
319 }
320
322 {
324 }
325
327 REAL u1, REAL u2, int uorder,
328 REAL v1, REAL v2, int vorder,
329 REAL *baseData,
330 REAL *retPoint, REAL* retdu, REAL *retdv);
331
333 REAL u1, REAL u2, int uorder,
334 REAL v1, REAL v2, int vorder,
335 REAL *baseData,
336 REAL *retPoint, REAL* retdu, REAL *retdv);
337
338
340 REAL *retPoint, REAL *retNormal);
341
343 REAL *retPoint, REAL *retNormal);
344
345void inBPMEval(bezierPatchMesh* bpm);
347
348/*-------------begin for surfEvalMachine -------------*/
353
354int auto_normal_flag; //whether to output normla or not in callback
355 //determined by GL_AUTO_NORMAL and callback_auto_normal
356int callback_auto_normal; //GLU_CALLBACK_AUTO_NORMAL_EXT
361
362void inMap2fEM(int which, //0:vert,1:norm,2:color,3:tex
363 int dimension,
364 REAL ulower,
365 REAL uupper,
366 int ustride,
367 int uorder,
368 REAL vlower,
369 REAL vupper,
370 int vstride,
371 int vorder,
372 REAL *ctlPoints);
373
375 REAL *retPoint, REAL *retdu, REAL *retdv);
377 REAL *retPoint);
379
382
383/*-------------end for surfEvalMachine -------------*/
384
385
386 /*************end for internal evaluators*****************/
387
388};
389
391{
392 switch(type) {
393 case TYPECOORD:
394 eval->coord2f(coord[0], coord[1]);
395 break;
396 case TYPEPOINT:
397 eval->point2i(point[0], point[1]);
398 break;
399 default:
400 break;
401 }
402}
403
404#endif /* __gluglsurfeval_h_ */
Arabic default style
Definition: afstyles.h:94
Definition: ehthrow.cxx:93
Definition: ehthrow.cxx:54
Definition: terminate.cpp:24
void range2f(long, REAL *, REAL *)
Definition: glsurfeval.cc:258
void newtmeshvert(REAL, REAL)
Definition: glsurfeval.cc:1160
surfEvalMachine em_normal
Definition: glsurfeval.h:350
void inBPMListEvalEM(bezierPatchMesh *list)
Definition: insurfeval.cc:2056
REAL global_vcoeffDeriv[IN_MAX_BEZIER_ORDER]
Definition: glsurfeval.h:245
REAL global_ucoeffDeriv[IN_MAX_BEZIER_ORDER]
Definition: glsurfeval.h:244
void inDoDomain2WithDerivs(int k, REAL u, REAL v, REAL u1, REAL u2, int uorder, REAL v1, REAL v2, int vorder, REAL *baseData, REAL *retPoint, REAL *retdu, REAL *retdv)
Definition: insurfeval.cc:949
void evalVStrip(int n_left, REAL u_left, REAL *left_val, int n_right, REAL u_right, REAL *right_val)
Definition: glsurfeval.cc:530
REAL global_ev_ctlPoints[IN_MAX_BEZIER_ORDER *IN_MAX_BEZIER_ORDER *IN_MAX_DIMENSION]
Definition: glsurfeval.h:262
void inBPMEval(bezierPatchMesh *bpm)
Definition: insurfeval.cc:247
surfEvalMachine em_color
Definition: glsurfeval.h:351
void LOD_eval(int num_vert, REAL *verts, int type, int level)
void vertexCallBack(const GLfloat *vert, void *data)
Definition: glsurfeval.cc:1255
void texcoordCallBack(const GLfloat *texcoord, void *data)
Definition: glsurfeval.cc:1283
bezierPatchMesh * global_bpm
Definition: glsurfeval.h:188
void domain2f(REAL, REAL, REAL, REAL)
Definition: glsurfeval.cc:263
void(GLAPIENTRY *beginCallBackN)(GLenum type)
void(GLAPIENTRY *normalCallBackN)(const GLfloat *normal)
void inDoEvalCoord2NOGE(REAL u, REAL v, REAL *retPoint, REAL *retNormal)
Definition: insurfeval.cc:749
void inEvalCoord2f(REAL u, REAL v)
Definition: insurfeval.cc:375
void inDoEvalCoord2EM(REAL u, REAL v)
Definition: insurfeval.cc:1702
void(GLAPIENTRY *normalCallBackData)(const GLfloat *normal
void endCallBack(void *data)
Definition: glsurfeval.cc:1246
void inPreEvaluateBV_intfac(REAL v)
Definition: glsurfeval.h:316
void addMap(SurfaceMap *)
Definition: glsurfeval.h:107
void inComputeNormal2(REAL *pu, REAL *pv, REAL *n)
Definition: insurfeval.cc:518
void putCallBack(GLenum which, _GLUfuncptr fn)
Definition: glsurfeval.cc:1190
void set_callback_userData(void *data)
Definition: glsurfeval.h:168
void coord2f(REAL, REAL)
Definition: glsurfeval.cc:1106
void inDoDomain2WithDerivsBV(int k, REAL u, REAL v, REAL u1, REAL u2, int uorder, REAL v1, REAL v2, int vorder, REAL *baseData, REAL *retPoint, REAL *retdu, REAL *retdv)
Definition: insurfeval.cc:903
void(GLAPIENTRY *colorCallBackN)(const GLfloat *color)
void LOD_eval_list(int level)
Definition: glsurfeval.cc:84
void inDoEvalCoord2NOGE_BU(REAL u, REAL v, REAL *retPoint, REAL *retNormal)
Definition: insurfeval.cc:621
void inDoDomain2EM(surfEvalMachine *em, REAL u, REAL v, REAL *retPoint)
Definition: insurfeval.cc:1653
void bgnclosedline(void)
Definition: glsurfeval.cc:268
void inComputeFirstPartials(REAL *p, REAL *pu, REAL *pv)
Definition: insurfeval.cc:501
void inEvalULine(int n_points, REAL v, REAL *u_vals, int stride, REAL ret_points[][3], REAL ret_normals[][3])
Definition: insurfeval.cc:1125
void inBPMListEval(bezierPatchMesh *list)
Definition: insurfeval.cc:238
void put_callback_auto_normal(int flag)
Definition: glsurfeval.h:158
void endclosedline(void)
Definition: glsurfeval.cc:277
void(GLAPIENTRY *texcoordCallBackN)(const GLfloat *texcoord)
void inPreEvaluateBU(int k, int uorder, int vorder, REAL uprime, REAL *baseData)
Definition: insurfeval.cc:838
REAL global_PBU[IN_MAX_BEZIER_ORDER][IN_MAX_DIMENSION]
Definition: glsurfeval.h:250
REAL global_ucoeff[IN_MAX_BEZIER_ORDER]
Definition: glsurfeval.h:242
void beginCallBack(GLenum type, void *data)
Definition: glsurfeval.cc:1237
void inEvalUStrip(int n_upper, REAL v_upper, REAL *upper_val, int n_lower, REAL v_lower, REAL *lower_val)
Definition: insurfeval.cc:1166
void inDoDomain2WithDerivsEM(surfEvalMachine *em, REAL u, REAL v, REAL *retPoint, REAL *retdu, REAL *retdv)
Definition: insurfeval.cc:1600
void mapmesh2f(long, long, long, long, long)
Definition: glsurfeval.cc:946
surfEvalMachine em_vertex
Definition: glsurfeval.h:349
void evalcoord2f(long, REAL, REAL)
Definition: glsurfeval.cc:1042
REAL global_PBV[IN_MAX_BEZIER_ORDER][IN_MAX_DIMENSION]
Definition: glsurfeval.h:248
void evalpoint2i(long, long)
Definition: glsurfeval.cc:1059
void colorCallBack(const GLfloat *color, void *data)
Definition: glsurfeval.cc:1274
void inPreEvaluateBV(int k, int uorder, int vorder, REAL vprime, REAL *baseData)
Definition: insurfeval.cc:809
void inPreEvaluateBU_intfac(REAL u)
Definition: glsurfeval.h:321
void inEvalVStrip(int n_left, REAL u_left, REAL *left_val, int n_right, REAL u_right, REAL *right_val)
Definition: insurfeval.cc:1355
void normalCallBack(const GLfloat *normal, void *data)
Definition: glsurfeval.cc:1265
void inPreEvaluate(int order, REAL vprime, REAL *coeff)
Definition: insurfeval.cc:1022
void(GLAPIENTRY *vertexCallBackData)(const GLfloat *vert
void inMap2f(int k, REAL ulower, REAL uupper, int ustride, int uorder, REAL vlower, REAL vupper, int vstride, int vorder, REAL *ctlPoints)
Definition: insurfeval.cc:444
void inMapGrid2f(int nu, REAL u0, REAL u1, int nv, REAL v0, REAL v1)
Definition: insurfeval.cc:389
REAL global_BV[IN_MAX_BEZIER_ORDER][IN_MAX_DIMENSION]
Definition: glsurfeval.h:247
void inDoEvalCoord2NOGE_BV(REAL u, REAL v, REAL *retPoint, REAL *retNormal)
Definition: insurfeval.cc:684
void map2f(long, REAL, REAL, long, long, REAL, REAL, long, long, REAL *)
Definition: glsurfeval.cc:872
virtual ~OpenGLSurfaceEvaluator(void)
Definition: glsurfeval.cc:162
void(GLAPIENTRY *endCallBackN)(void)
void point2i(long, long)
Definition: glsurfeval.cc:1069
void inEvalPoint2(int i, int j)
Definition: insurfeval.cc:362
void inMap2fEM(int which, int dimension, REAL ulower, REAL uupper, int ustride, int uorder, REAL vlower, REAL vupper, int vstride, int vorder, REAL *ctlPoints)
Definition: insurfeval.cc:1540
void mapgrid2f(long, REAL, REAL, long, REAL, REAL)
Definition: glsurfeval.cc:195
void put_vertices_call_back(int flag)
Definition: glsurfeval.h:153
void inEvalVLine(int n_points, REAL u, REAL *v_vals, int stride, REAL ret_points[][3], REAL ret_normals[][3])
Definition: insurfeval.cc:1144
void inDoDomain2WithDerivsBU(int k, REAL u, REAL v, REAL u1, REAL u2, int uorder, REAL v1, REAL v2, int vorder, REAL *baseData, REAL *retPoint, REAL *retdu, REAL *retdv)
Definition: insurfeval.cc:868
void LOD_triangle(REAL A[2], REAL B[2], REAL C[2], int level)
void polymode(long style)
Definition: glsurfeval.cc:219
void inPreEvaluateWithDeriv(int order, REAL vprime, REAL *coeff, REAL *coeffDeriv)
Definition: insurfeval.cc:1066
void(GLAPIENTRY *vertexCallBackN)(const GLfloat *vert)
StoredVertex * vertexCache[VERTEX_CACHE_SIZE]
Definition: glsurfeval.h:180
surfEvalMachine em_texcoord
Definition: glsurfeval.h:352
void(GLAPIENTRY *texcoordCallBackData)(const GLfloat *texcoord
void(GLAPIENTRY *endCallBackData)(void *data)
void(GLAPIENTRY *colorCallBackData)(const GLfloat *color
void inDoEvalCoord2(REAL u, REAL v, REAL *retPoint, REAL *retNormal)
Definition: insurfeval.cc:541
void inBPMEvalEM(bezierPatchMesh *bpm)
Definition: insurfeval.cc:1826
void evalUStrip(int n_upper, REAL v_upper, REAL *upper_val, int n_lower, REAL v_lower, REAL *lower_val)
Definition: glsurfeval.cc:343
REAL global_vcoeff[IN_MAX_BEZIER_ORDER]
Definition: glsurfeval.h:243
void inEvalMesh2(int lowU, int lowV, int highU, int highV)
Definition: insurfeval.cc:400
REAL global_BU[IN_MAX_BEZIER_ORDER][IN_MAX_DIMENSION]
Definition: glsurfeval.h:249
void saveEvalPoint(long x, long y)
Definition: glsurfeval.h:90
void invoke(OpenGLSurfaceEvaluator *eval)
Definition: glsurfeval.h:390
void saveEvalCoord(REAL x, REAL y)
Definition: glsurfeval.h:88
long point[2]
Definition: glsurfeval.h:97
~StoredVertex(void)
Definition: glsurfeval.h:87
Definition: list.h:37
#define GLAPIENTRY
Definition: glu.h:44
float REAL
Definition: types.h:41
GLint level
Definition: gl.h:1546
float GLfloat
Definition: gl.h:161
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
const GLdouble * v
Definition: gl.h:2040
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
unsigned int GLenum
Definition: gl.h:150
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
int GLint
Definition: gl.h:156
GLdouble n
Definition: glext.h:7729
GLdouble GLdouble GLint ustride
Definition: glext.h:8308
GLsizei stride
Definition: glext.h:5848
GLuint color
Definition: glext.h:6243
GLuint coord
Definition: glext.h:9511
GLdouble GLdouble GLint GLint uorder
Definition: glext.h:8308
GLdouble GLdouble u2
Definition: glext.h:8308
GLfloat v0
Definition: glext.h:6061
GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint vorder
Definition: glext.h:8308
GLfloat GLfloat p
Definition: glext.h:8902
GLboolean enable
Definition: glext.h:11120
GLuint GLdouble GLdouble GLint GLint order
Definition: glext.h:11194
GLfloat GLfloat v1
Definition: glext.h:6062
GLfloat GLfloat GLfloat v2
Definition: glext.h:6063
GLdouble u1
Definition: glext.h:8308
GLdouble GLdouble GLint GLint GLdouble GLdouble GLint vstride
Definition: glext.h:8308
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean flag
Definition: glfuncs.h:52
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
Definition: glfuncs.h:250
#define IN_MAX_BEZIER_ORDER
Definition: glsurfeval.h:56
#define IN_MAX_DIMENSION
Definition: glsurfeval.h:60
#define TYPEPOINT
Definition: glsurfeval.h:49
#define TYPECOORD
Definition: glsurfeval.h:48
#define VERTEX_CACHE_SIZE
Definition: glsurfeval.h:52
int k
Definition: mpi.c:3369
int disable
Definition: msacm.c:1365
@ normal
Definition: optimize.h:166
REAL ucoeffDeriv[IN_MAX_BEZIER_ORDER]
Definition: glsurfeval.h:78
REAL ucoeff[IN_MAX_BEZIER_ORDER]
Definition: glsurfeval.h:76
REAL vcoeff[IN_MAX_BEZIER_ORDER]
Definition: glsurfeval.h:77
REAL vcoeffDeriv[IN_MAX_BEZIER_ORDER]
Definition: glsurfeval.h:79
REAL ctlPoints[IN_MAX_BEZIER_ORDER *IN_MAX_BEZIER_ORDER *IN_MAX_DIMENSION]
Definition: glsurfeval.h:75
static GLenum _GLUfuncptr fn
Definition: wgl_font.c:159
void(WINAPI * _GLUfuncptr)(void)
Definition: wgl_font.c:148