ReactOS  0.4.14-dev-50-g13bb5e2
glu.h File Reference
#include <GL/gl.h>
Include dependency graph for glu.h:

Go to the source code of this file.

Macros

#define GLAPIENTRY
 
#define GLAPIENTRYP   GLAPIENTRY *
 
#define GLAPI   extern
 
#define GLU_EXT_object_space_tess   1
 
#define GLU_EXT_nurbs_tessellator   1
 
#define GLU_FALSE   0
 
#define GLU_TRUE   1
 
#define GLU_VERSION_1_1   1
 
#define GLU_VERSION_1_2   1
 
#define GLU_VERSION_1_3   1
 
#define GLU_VERSION   100800
 
#define GLU_EXTENSIONS   100801
 
#define GLU_INVALID_ENUM   100900
 
#define GLU_INVALID_VALUE   100901
 
#define GLU_OUT_OF_MEMORY   100902
 
#define GLU_INCOMPATIBLE_GL_VERSION   100903
 
#define GLU_INVALID_OPERATION   100904
 
#define GLU_OUTLINE_POLYGON   100240
 
#define GLU_OUTLINE_PATCH   100241
 
#define GLU_NURBS_ERROR   100103
 
#define GLU_ERROR   100103
 
#define GLU_NURBS_BEGIN   100164
 
#define GLU_NURBS_BEGIN_EXT   100164
 
#define GLU_NURBS_VERTEX   100165
 
#define GLU_NURBS_VERTEX_EXT   100165
 
#define GLU_NURBS_NORMAL   100166
 
#define GLU_NURBS_NORMAL_EXT   100166
 
#define GLU_NURBS_COLOR   100167
 
#define GLU_NURBS_COLOR_EXT   100167
 
#define GLU_NURBS_TEXTURE_COORD   100168
 
#define GLU_NURBS_TEX_COORD_EXT   100168
 
#define GLU_NURBS_END   100169
 
#define GLU_NURBS_END_EXT   100169
 
#define GLU_NURBS_BEGIN_DATA   100170
 
#define GLU_NURBS_BEGIN_DATA_EXT   100170
 
#define GLU_NURBS_VERTEX_DATA   100171
 
#define GLU_NURBS_VERTEX_DATA_EXT   100171
 
#define GLU_NURBS_NORMAL_DATA   100172
 
#define GLU_NURBS_NORMAL_DATA_EXT   100172
 
#define GLU_NURBS_COLOR_DATA   100173
 
#define GLU_NURBS_COLOR_DATA_EXT   100173
 
#define GLU_NURBS_TEXTURE_COORD_DATA   100174
 
#define GLU_NURBS_TEX_COORD_DATA_EXT   100174
 
#define GLU_NURBS_END_DATA   100175
 
#define GLU_NURBS_END_DATA_EXT   100175
 
#define GLU_NURBS_ERROR1   100251
 
#define GLU_NURBS_ERROR2   100252
 
#define GLU_NURBS_ERROR3   100253
 
#define GLU_NURBS_ERROR4   100254
 
#define GLU_NURBS_ERROR5   100255
 
#define GLU_NURBS_ERROR6   100256
 
#define GLU_NURBS_ERROR7   100257
 
#define GLU_NURBS_ERROR8   100258
 
#define GLU_NURBS_ERROR9   100259
 
#define GLU_NURBS_ERROR10   100260
 
#define GLU_NURBS_ERROR11   100261
 
#define GLU_NURBS_ERROR12   100262
 
#define GLU_NURBS_ERROR13   100263
 
#define GLU_NURBS_ERROR14   100264
 
#define GLU_NURBS_ERROR15   100265
 
#define GLU_NURBS_ERROR16   100266
 
#define GLU_NURBS_ERROR17   100267
 
#define GLU_NURBS_ERROR18   100268
 
#define GLU_NURBS_ERROR19   100269
 
#define GLU_NURBS_ERROR20   100270
 
#define GLU_NURBS_ERROR21   100271
 
#define GLU_NURBS_ERROR22   100272
 
#define GLU_NURBS_ERROR23   100273
 
#define GLU_NURBS_ERROR24   100274
 
#define GLU_NURBS_ERROR25   100275
 
#define GLU_NURBS_ERROR26   100276
 
#define GLU_NURBS_ERROR27   100277
 
#define GLU_NURBS_ERROR28   100278
 
#define GLU_NURBS_ERROR29   100279
 
#define GLU_NURBS_ERROR30   100280
 
#define GLU_NURBS_ERROR31   100281
 
#define GLU_NURBS_ERROR32   100282
 
#define GLU_NURBS_ERROR33   100283
 
#define GLU_NURBS_ERROR34   100284
 
#define GLU_NURBS_ERROR35   100285
 
#define GLU_NURBS_ERROR36   100286
 
#define GLU_NURBS_ERROR37   100287
 
#define GLU_AUTO_LOAD_MATRIX   100200
 
#define GLU_CULLING   100201
 
#define GLU_SAMPLING_TOLERANCE   100203
 
#define GLU_DISPLAY_MODE   100204
 
#define GLU_PARAMETRIC_TOLERANCE   100202
 
#define GLU_SAMPLING_METHOD   100205
 
#define GLU_U_STEP   100206
 
#define GLU_V_STEP   100207
 
#define GLU_NURBS_MODE   100160
 
#define GLU_NURBS_MODE_EXT   100160
 
#define GLU_NURBS_TESSELLATOR   100161
 
#define GLU_NURBS_TESSELLATOR_EXT   100161
 
#define GLU_NURBS_RENDERER   100162
 
#define GLU_NURBS_RENDERER_EXT   100162
 
#define GLU_OBJECT_PARAMETRIC_ERROR   100208
 
#define GLU_OBJECT_PARAMETRIC_ERROR_EXT   100208
 
#define GLU_OBJECT_PATH_LENGTH   100209
 
#define GLU_OBJECT_PATH_LENGTH_EXT   100209
 
#define GLU_PATH_LENGTH   100215
 
#define GLU_PARAMETRIC_ERROR   100216
 
#define GLU_DOMAIN_DISTANCE   100217
 
#define GLU_MAP1_TRIM_2   100210
 
#define GLU_MAP1_TRIM_3   100211
 
#define GLU_POINT   100010
 
#define GLU_LINE   100011
 
#define GLU_FILL   100012
 
#define GLU_SILHOUETTE   100013
 
#define GLU_SMOOTH   100000
 
#define GLU_FLAT   100001
 
#define GLU_NONE   100002
 
#define GLU_OUTSIDE   100020
 
#define GLU_INSIDE   100021
 
#define GLU_TESS_BEGIN   100100
 
#define GLU_BEGIN   100100
 
#define GLU_TESS_VERTEX   100101
 
#define GLU_VERTEX   100101
 
#define GLU_TESS_END   100102
 
#define GLU_END   100102
 
#define GLU_TESS_ERROR   100103
 
#define GLU_TESS_EDGE_FLAG   100104
 
#define GLU_EDGE_FLAG   100104
 
#define GLU_TESS_COMBINE   100105
 
#define GLU_TESS_BEGIN_DATA   100106
 
#define GLU_TESS_VERTEX_DATA   100107
 
#define GLU_TESS_END_DATA   100108
 
#define GLU_TESS_ERROR_DATA   100109
 
#define GLU_TESS_EDGE_FLAG_DATA   100110
 
#define GLU_TESS_COMBINE_DATA   100111
 
#define GLU_CW   100120
 
#define GLU_CCW   100121
 
#define GLU_INTERIOR   100122
 
#define GLU_EXTERIOR   100123
 
#define GLU_UNKNOWN   100124
 
#define GLU_TESS_WINDING_RULE   100140
 
#define GLU_TESS_BOUNDARY_ONLY   100141
 
#define GLU_TESS_TOLERANCE   100142
 
#define GLU_TESS_ERROR1   100151
 
#define GLU_TESS_ERROR2   100152
 
#define GLU_TESS_ERROR3   100153
 
#define GLU_TESS_ERROR4   100154
 
#define GLU_TESS_ERROR5   100155
 
#define GLU_TESS_ERROR6   100156
 
#define GLU_TESS_ERROR7   100157
 
#define GLU_TESS_ERROR8   100158
 
#define GLU_TESS_MISSING_BEGIN_POLYGON   100151
 
#define GLU_TESS_MISSING_BEGIN_CONTOUR   100152
 
#define GLU_TESS_MISSING_END_POLYGON   100153
 
#define GLU_TESS_MISSING_END_CONTOUR   100154
 
#define GLU_TESS_COORD_TOO_LARGE   100155
 
#define GLU_TESS_NEED_COMBINE_CALLBACK   100156
 
#define GLU_TESS_WINDING_ODD   100130
 
#define GLU_TESS_WINDING_NONZERO   100131
 
#define GLU_TESS_WINDING_POSITIVE   100132
 
#define GLU_TESS_WINDING_NEGATIVE   100133
 
#define GLU_TESS_WINDING_ABS_GEQ_TWO   100134
 
#define GLU_TESS_MAX_COORD   1.0e150
 

Typedefs

typedef struct GLUnurbs GLUnurbs
 
typedef struct GLUquadric GLUquadric
 
typedef struct GLUtesselator GLUtesselator
 
typedef GLUnurbs GLUnurbsObj
 
typedef GLUquadric GLUquadricObj
 
typedef GLUtesselator GLUtesselatorObj
 
typedef GLUtesselator GLUtriangulatorObj
 

Functions

typedef void (GLAPIENTRYP _GLUfuncptr)(void)
 
GLAPI void GLAPIENTRY gluBeginCurve (GLUnurbs *nurb)
 
GLAPI void GLAPIENTRY gluBeginPolygon (GLUtesselator *tess)
 
GLAPI void GLAPIENTRY gluBeginSurface (GLUnurbs *nurb)
 
GLAPI void GLAPIENTRY gluBeginTrim (GLUnurbs *nurb)
 
GLAPI GLint GLAPIENTRY gluBuild1DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data)
 
GLAPI GLint GLAPIENTRY gluBuild1DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void *data)
 
GLAPI GLint GLAPIENTRY gluBuild2DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data)
 
GLAPI GLint GLAPIENTRY gluBuild2DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *data)
 
GLAPI GLint GLAPIENTRY gluBuild3DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data)
 
GLAPI GLint GLAPIENTRY gluBuild3DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data)
 
GLAPI GLboolean GLAPIENTRY gluCheckExtension (const GLubyte *extName, const GLubyte *extString)
 
GLAPI void GLAPIENTRY gluCylinder (GLUquadric *quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks)
 
GLAPI void GLAPIENTRY gluDeleteNurbsRenderer (GLUnurbs *nurb)
 
GLAPI void GLAPIENTRY gluDeleteQuadric (GLUquadric *quad)
 
GLAPI void GLAPIENTRY gluDeleteTess (GLUtesselator *tess)
 
GLAPI void GLAPIENTRY gluDisk (GLUquadric *quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops)
 
GLAPI void GLAPIENTRY gluEndCurve (GLUnurbs *nurb)
 
GLAPI void GLAPIENTRY gluEndPolygon (GLUtesselator *tess)
 
GLAPI void GLAPIENTRY gluEndSurface (GLUnurbs *nurb)
 
GLAPI void GLAPIENTRY gluEndTrim (GLUnurbs *nurb)
 
GLAPI const GLubyte *GLAPIENTRY gluErrorString (GLenum error)
 
GLAPI void GLAPIENTRY gluGetNurbsProperty (GLUnurbs *nurb, GLenum property, GLfloat *data)
 
GLAPI const GLubyte *GLAPIENTRY gluGetString (GLenum name)
 
GLAPI void GLAPIENTRY gluGetTessProperty (GLUtesselator *tess, GLenum which, GLdouble *data)
 
GLAPI void GLAPIENTRY gluLoadSamplingMatrices (GLUnurbs *nurb, const GLfloat *model, const GLfloat *perspective, const GLint *view)
 
GLAPI void GLAPIENTRY gluLookAt (GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ)
 
GLAPI GLUnurbs *GLAPIENTRY gluNewNurbsRenderer (void)
 
GLAPI GLUquadric *GLAPIENTRY gluNewQuadric (void)
 
GLAPI GLUtesselator *GLAPIENTRY gluNewTess (void)
 
GLAPI void GLAPIENTRY gluNextContour (GLUtesselator *tess, GLenum type)
 
GLAPI void GLAPIENTRY gluNurbsCallback (GLUnurbs *nurb, GLenum which, _GLUfuncptr CallBackFunc)
 
GLAPI void GLAPIENTRY gluNurbsCallbackData (GLUnurbs *nurb, GLvoid *userData)
 
GLAPI void GLAPIENTRY gluNurbsCallbackDataEXT (GLUnurbs *nurb, GLvoid *userData)
 
GLAPI void GLAPIENTRY gluNurbsCurve (GLUnurbs *nurb, GLint knotCount, GLfloat *knots, GLint stride, GLfloat *control, GLint order, GLenum type)
 
GLAPI void GLAPIENTRY gluNurbsProperty (GLUnurbs *nurb, GLenum property, GLfloat value)
 
GLAPI void GLAPIENTRY gluNurbsSurface (GLUnurbs *nurb, GLint sKnotCount, GLfloat *sKnots, GLint tKnotCount, GLfloat *tKnots, GLint sStride, GLint tStride, GLfloat *control, GLint sOrder, GLint tOrder, GLenum type)
 
GLAPI void GLAPIENTRY gluOrtho2D (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top)
 
GLAPI void GLAPIENTRY gluPartialDisk (GLUquadric *quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep)
 
GLAPI void GLAPIENTRY gluPerspective (GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar)
 
GLAPI void GLAPIENTRY gluPickMatrix (GLdouble x, GLdouble y, GLdouble delX, GLdouble delY, GLint *viewport)
 
GLAPI GLint GLAPIENTRY gluProject (GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble *winX, GLdouble *winY, GLdouble *winZ)
 
GLAPI void GLAPIENTRY gluPwlCurve (GLUnurbs *nurb, GLint count, GLfloat *data, GLint stride, GLenum type)
 
GLAPI void GLAPIENTRY gluQuadricCallback (GLUquadric *quad, GLenum which, _GLUfuncptr CallBackFunc)
 
GLAPI void GLAPIENTRY gluQuadricDrawStyle (GLUquadric *quad, GLenum draw)
 
GLAPI void GLAPIENTRY gluQuadricNormals (GLUquadric *quad, GLenum normal)
 
GLAPI void GLAPIENTRY gluQuadricOrientation (GLUquadric *quad, GLenum orientation)
 
GLAPI void GLAPIENTRY gluQuadricTexture (GLUquadric *quad, GLboolean texture)
 
GLAPI GLint GLAPIENTRY gluScaleImage (GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void *dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid *dataOut)
 
GLAPI void GLAPIENTRY gluSphere (GLUquadric *quad, GLdouble radius, GLint slices, GLint stacks)
 
GLAPI void GLAPIENTRY gluTessBeginContour (GLUtesselator *tess)
 
GLAPI void GLAPIENTRY gluTessBeginPolygon (GLUtesselator *tess, GLvoid *data)
 
GLAPI void GLAPIENTRY gluTessCallback (GLUtesselator *tess, GLenum which, _GLUfuncptr CallBackFunc)
 
GLAPI void GLAPIENTRY gluTessEndContour (GLUtesselator *tess)
 
GLAPI void GLAPIENTRY gluTessEndPolygon (GLUtesselator *tess)
 
GLAPI void GLAPIENTRY gluTessNormal (GLUtesselator *tess, GLdouble valueX, GLdouble valueY, GLdouble valueZ)
 
GLAPI void GLAPIENTRY gluTessProperty (GLUtesselator *tess, GLenum which, GLdouble data)
 
GLAPI void GLAPIENTRY gluTessVertex (GLUtesselator *tess, GLdouble *location, GLvoid *data)
 
GLAPI GLint GLAPIENTRY gluUnProject (GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble *objX, GLdouble *objY, GLdouble *objZ)
 
GLAPI GLint GLAPIENTRY gluUnProject4 (GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble nearVal, GLdouble farVal, GLdouble *objX, GLdouble *objY, GLdouble *objZ, GLdouble *objW)
 

Macro Definition Documentation

◆ GLAPI

#define GLAPI   extern

Definition at line 61 of file glu.h.

◆ GLAPIENTRY

#define GLAPIENTRY

Definition at line 44 of file glu.h.

◆ GLAPIENTRYP

#define GLAPIENTRYP   GLAPIENTRY *

Definition at line 49 of file glu.h.

◆ GLU_AUTO_LOAD_MATRIX

#define GLU_AUTO_LOAD_MATRIX   100200

Definition at line 167 of file glu.h.

◆ GLU_BEGIN

#define GLU_BEGIN   100100

Definition at line 215 of file glu.h.

◆ GLU_CCW

#define GLU_CCW   100121

Definition at line 233 of file glu.h.

◆ GLU_CULLING

#define GLU_CULLING   100201

Definition at line 168 of file glu.h.

◆ GLU_CW

#define GLU_CW   100120

Definition at line 232 of file glu.h.

◆ GLU_DISPLAY_MODE

#define GLU_DISPLAY_MODE   100204

Definition at line 170 of file glu.h.

◆ GLU_DOMAIN_DISTANCE

#define GLU_DOMAIN_DISTANCE   100217

Definition at line 189 of file glu.h.

◆ GLU_EDGE_FLAG

#define GLU_EDGE_FLAG   100104

Definition at line 222 of file glu.h.

◆ GLU_END

#define GLU_END   100102

Definition at line 219 of file glu.h.

◆ GLU_ERROR

#define GLU_ERROR   100103

Definition at line 101 of file glu.h.

◆ GLU_EXT_nurbs_tessellator

#define GLU_EXT_nurbs_tessellator   1

Definition at line 72 of file glu.h.

◆ GLU_EXT_object_space_tess

#define GLU_EXT_object_space_tess   1

Definition at line 71 of file glu.h.

◆ GLU_EXTENSIONS

#define GLU_EXTENSIONS   100801

Definition at line 85 of file glu.h.

◆ GLU_EXTERIOR

#define GLU_EXTERIOR   100123

Definition at line 235 of file glu.h.

◆ GLU_FALSE

#define GLU_FALSE   0

Definition at line 75 of file glu.h.

◆ GLU_FILL

#define GLU_FILL   100012

Definition at line 198 of file glu.h.

◆ GLU_FLAT

#define GLU_FLAT   100001

Definition at line 206 of file glu.h.

◆ GLU_INCOMPATIBLE_GL_VERSION

#define GLU_INCOMPATIBLE_GL_VERSION   100903

Definition at line 91 of file glu.h.

◆ GLU_INSIDE

#define GLU_INSIDE   100021

Definition at line 211 of file glu.h.

◆ GLU_INTERIOR

#define GLU_INTERIOR   100122

Definition at line 234 of file glu.h.

◆ GLU_INVALID_ENUM

#define GLU_INVALID_ENUM   100900

Definition at line 88 of file glu.h.

◆ GLU_INVALID_OPERATION

#define GLU_INVALID_OPERATION   100904

Definition at line 92 of file glu.h.

◆ GLU_INVALID_VALUE

#define GLU_INVALID_VALUE   100901

Definition at line 89 of file glu.h.

◆ GLU_LINE

#define GLU_LINE   100011

Definition at line 197 of file glu.h.

◆ GLU_MAP1_TRIM_2

#define GLU_MAP1_TRIM_2   100210

Definition at line 192 of file glu.h.

◆ GLU_MAP1_TRIM_3

#define GLU_MAP1_TRIM_3   100211

Definition at line 193 of file glu.h.

◆ GLU_NONE

#define GLU_NONE   100002

Definition at line 207 of file glu.h.

◆ GLU_NURBS_BEGIN

#define GLU_NURBS_BEGIN   100164

Definition at line 102 of file glu.h.

◆ GLU_NURBS_BEGIN_DATA

#define GLU_NURBS_BEGIN_DATA   100170

Definition at line 114 of file glu.h.

◆ GLU_NURBS_BEGIN_DATA_EXT

#define GLU_NURBS_BEGIN_DATA_EXT   100170

Definition at line 115 of file glu.h.

◆ GLU_NURBS_BEGIN_EXT

#define GLU_NURBS_BEGIN_EXT   100164

Definition at line 103 of file glu.h.

◆ GLU_NURBS_COLOR

#define GLU_NURBS_COLOR   100167

Definition at line 108 of file glu.h.

◆ GLU_NURBS_COLOR_DATA

#define GLU_NURBS_COLOR_DATA   100173

Definition at line 120 of file glu.h.

◆ GLU_NURBS_COLOR_DATA_EXT

#define GLU_NURBS_COLOR_DATA_EXT   100173

Definition at line 121 of file glu.h.

◆ GLU_NURBS_COLOR_EXT

#define GLU_NURBS_COLOR_EXT   100167

Definition at line 109 of file glu.h.

◆ GLU_NURBS_END

#define GLU_NURBS_END   100169

Definition at line 112 of file glu.h.

◆ GLU_NURBS_END_DATA

#define GLU_NURBS_END_DATA   100175

Definition at line 124 of file glu.h.

◆ GLU_NURBS_END_DATA_EXT

#define GLU_NURBS_END_DATA_EXT   100175

Definition at line 125 of file glu.h.

◆ GLU_NURBS_END_EXT

#define GLU_NURBS_END_EXT   100169

Definition at line 113 of file glu.h.

◆ GLU_NURBS_ERROR

#define GLU_NURBS_ERROR   100103

Definition at line 100 of file glu.h.

◆ GLU_NURBS_ERROR1

#define GLU_NURBS_ERROR1   100251

Definition at line 128 of file glu.h.

◆ GLU_NURBS_ERROR10

#define GLU_NURBS_ERROR10   100260

Definition at line 137 of file glu.h.

◆ GLU_NURBS_ERROR11

#define GLU_NURBS_ERROR11   100261

Definition at line 138 of file glu.h.

◆ GLU_NURBS_ERROR12

#define GLU_NURBS_ERROR12   100262

Definition at line 139 of file glu.h.

◆ GLU_NURBS_ERROR13

#define GLU_NURBS_ERROR13   100263

Definition at line 140 of file glu.h.

◆ GLU_NURBS_ERROR14

#define GLU_NURBS_ERROR14   100264

Definition at line 141 of file glu.h.

◆ GLU_NURBS_ERROR15

#define GLU_NURBS_ERROR15   100265

Definition at line 142 of file glu.h.

◆ GLU_NURBS_ERROR16

#define GLU_NURBS_ERROR16   100266

Definition at line 143 of file glu.h.

◆ GLU_NURBS_ERROR17

#define GLU_NURBS_ERROR17   100267

Definition at line 144 of file glu.h.

◆ GLU_NURBS_ERROR18

#define GLU_NURBS_ERROR18   100268

Definition at line 145 of file glu.h.

◆ GLU_NURBS_ERROR19

#define GLU_NURBS_ERROR19   100269

Definition at line 146 of file glu.h.

◆ GLU_NURBS_ERROR2

#define GLU_NURBS_ERROR2   100252

Definition at line 129 of file glu.h.

◆ GLU_NURBS_ERROR20

#define GLU_NURBS_ERROR20   100270

Definition at line 147 of file glu.h.

◆ GLU_NURBS_ERROR21

#define GLU_NURBS_ERROR21   100271

Definition at line 148 of file glu.h.

◆ GLU_NURBS_ERROR22

#define GLU_NURBS_ERROR22   100272

Definition at line 149 of file glu.h.

◆ GLU_NURBS_ERROR23

#define GLU_NURBS_ERROR23   100273

Definition at line 150 of file glu.h.

◆ GLU_NURBS_ERROR24

#define GLU_NURBS_ERROR24   100274

Definition at line 151 of file glu.h.

◆ GLU_NURBS_ERROR25

#define GLU_NURBS_ERROR25   100275

Definition at line 152 of file glu.h.

◆ GLU_NURBS_ERROR26

#define GLU_NURBS_ERROR26   100276

Definition at line 153 of file glu.h.

◆ GLU_NURBS_ERROR27

#define GLU_NURBS_ERROR27   100277

Definition at line 154 of file glu.h.

◆ GLU_NURBS_ERROR28

#define GLU_NURBS_ERROR28   100278

Definition at line 155 of file glu.h.

◆ GLU_NURBS_ERROR29

#define GLU_NURBS_ERROR29   100279

Definition at line 156 of file glu.h.

◆ GLU_NURBS_ERROR3

#define GLU_NURBS_ERROR3   100253

Definition at line 130 of file glu.h.

◆ GLU_NURBS_ERROR30

#define GLU_NURBS_ERROR30   100280

Definition at line 157 of file glu.h.

◆ GLU_NURBS_ERROR31

#define GLU_NURBS_ERROR31   100281

Definition at line 158 of file glu.h.

◆ GLU_NURBS_ERROR32

#define GLU_NURBS_ERROR32   100282

Definition at line 159 of file glu.h.

◆ GLU_NURBS_ERROR33

#define GLU_NURBS_ERROR33   100283

Definition at line 160 of file glu.h.

◆ GLU_NURBS_ERROR34

#define GLU_NURBS_ERROR34   100284

Definition at line 161 of file glu.h.

◆ GLU_NURBS_ERROR35

#define GLU_NURBS_ERROR35   100285

Definition at line 162 of file glu.h.

◆ GLU_NURBS_ERROR36

#define GLU_NURBS_ERROR36   100286

Definition at line 163 of file glu.h.

◆ GLU_NURBS_ERROR37

#define GLU_NURBS_ERROR37   100287

Definition at line 164 of file glu.h.

◆ GLU_NURBS_ERROR4

#define GLU_NURBS_ERROR4   100254

Definition at line 131 of file glu.h.

◆ GLU_NURBS_ERROR5

#define GLU_NURBS_ERROR5   100255

Definition at line 132 of file glu.h.

◆ GLU_NURBS_ERROR6

#define GLU_NURBS_ERROR6   100256

Definition at line 133 of file glu.h.

◆ GLU_NURBS_ERROR7

#define GLU_NURBS_ERROR7   100257

Definition at line 134 of file glu.h.

◆ GLU_NURBS_ERROR8

#define GLU_NURBS_ERROR8   100258

Definition at line 135 of file glu.h.

◆ GLU_NURBS_ERROR9

#define GLU_NURBS_ERROR9   100259

Definition at line 136 of file glu.h.

◆ GLU_NURBS_MODE

#define GLU_NURBS_MODE   100160

Definition at line 175 of file glu.h.

◆ GLU_NURBS_MODE_EXT

#define GLU_NURBS_MODE_EXT   100160

Definition at line 176 of file glu.h.

◆ GLU_NURBS_NORMAL

#define GLU_NURBS_NORMAL   100166

Definition at line 106 of file glu.h.

◆ GLU_NURBS_NORMAL_DATA

#define GLU_NURBS_NORMAL_DATA   100172

Definition at line 118 of file glu.h.

◆ GLU_NURBS_NORMAL_DATA_EXT

#define GLU_NURBS_NORMAL_DATA_EXT   100172

Definition at line 119 of file glu.h.

◆ GLU_NURBS_NORMAL_EXT

#define GLU_NURBS_NORMAL_EXT   100166

Definition at line 107 of file glu.h.

◆ GLU_NURBS_RENDERER

#define GLU_NURBS_RENDERER   100162

Definition at line 179 of file glu.h.

◆ GLU_NURBS_RENDERER_EXT

#define GLU_NURBS_RENDERER_EXT   100162

Definition at line 180 of file glu.h.

◆ GLU_NURBS_TESSELLATOR

#define GLU_NURBS_TESSELLATOR   100161

Definition at line 177 of file glu.h.

◆ GLU_NURBS_TESSELLATOR_EXT

#define GLU_NURBS_TESSELLATOR_EXT   100161

Definition at line 178 of file glu.h.

◆ GLU_NURBS_TEX_COORD_DATA_EXT

#define GLU_NURBS_TEX_COORD_DATA_EXT   100174

Definition at line 123 of file glu.h.

◆ GLU_NURBS_TEX_COORD_EXT

#define GLU_NURBS_TEX_COORD_EXT   100168

Definition at line 111 of file glu.h.

◆ GLU_NURBS_TEXTURE_COORD

#define GLU_NURBS_TEXTURE_COORD   100168

Definition at line 110 of file glu.h.

◆ GLU_NURBS_TEXTURE_COORD_DATA

#define GLU_NURBS_TEXTURE_COORD_DATA   100174

Definition at line 122 of file glu.h.

◆ GLU_NURBS_VERTEX

#define GLU_NURBS_VERTEX   100165

Definition at line 104 of file glu.h.

◆ GLU_NURBS_VERTEX_DATA

#define GLU_NURBS_VERTEX_DATA   100171

Definition at line 116 of file glu.h.

◆ GLU_NURBS_VERTEX_DATA_EXT

#define GLU_NURBS_VERTEX_DATA_EXT   100171

Definition at line 117 of file glu.h.

◆ GLU_NURBS_VERTEX_EXT

#define GLU_NURBS_VERTEX_EXT   100165

Definition at line 105 of file glu.h.

◆ GLU_OBJECT_PARAMETRIC_ERROR

#define GLU_OBJECT_PARAMETRIC_ERROR   100208

Definition at line 183 of file glu.h.

◆ GLU_OBJECT_PARAMETRIC_ERROR_EXT

#define GLU_OBJECT_PARAMETRIC_ERROR_EXT   100208

Definition at line 184 of file glu.h.

◆ GLU_OBJECT_PATH_LENGTH

#define GLU_OBJECT_PATH_LENGTH   100209

Definition at line 185 of file glu.h.

◆ GLU_OBJECT_PATH_LENGTH_EXT

#define GLU_OBJECT_PATH_LENGTH_EXT   100209

Definition at line 186 of file glu.h.

◆ GLU_OUT_OF_MEMORY

#define GLU_OUT_OF_MEMORY   100902

Definition at line 90 of file glu.h.

◆ GLU_OUTLINE_PATCH

#define GLU_OUTLINE_PATCH   100241

Definition at line 97 of file glu.h.

◆ GLU_OUTLINE_POLYGON

#define GLU_OUTLINE_POLYGON   100240

Definition at line 96 of file glu.h.

◆ GLU_OUTSIDE

#define GLU_OUTSIDE   100020

Definition at line 210 of file glu.h.

◆ GLU_PARAMETRIC_ERROR

#define GLU_PARAMETRIC_ERROR   100216

Definition at line 188 of file glu.h.

◆ GLU_PARAMETRIC_TOLERANCE

#define GLU_PARAMETRIC_TOLERANCE   100202

Definition at line 171 of file glu.h.

◆ GLU_PATH_LENGTH

#define GLU_PATH_LENGTH   100215

Definition at line 187 of file glu.h.

◆ GLU_POINT

#define GLU_POINT   100010

Definition at line 196 of file glu.h.

◆ GLU_SAMPLING_METHOD

#define GLU_SAMPLING_METHOD   100205

Definition at line 172 of file glu.h.

◆ GLU_SAMPLING_TOLERANCE

#define GLU_SAMPLING_TOLERANCE   100203

Definition at line 169 of file glu.h.

◆ GLU_SILHOUETTE

#define GLU_SILHOUETTE   100013

Definition at line 199 of file glu.h.

◆ GLU_SMOOTH

#define GLU_SMOOTH   100000

Definition at line 205 of file glu.h.

◆ GLU_TESS_BEGIN

#define GLU_TESS_BEGIN   100100

Definition at line 214 of file glu.h.

◆ GLU_TESS_BEGIN_DATA

#define GLU_TESS_BEGIN_DATA   100106

Definition at line 224 of file glu.h.

◆ GLU_TESS_BOUNDARY_ONLY

#define GLU_TESS_BOUNDARY_ONLY   100141

Definition at line 240 of file glu.h.

◆ GLU_TESS_COMBINE

#define GLU_TESS_COMBINE   100105

Definition at line 223 of file glu.h.

◆ GLU_TESS_COMBINE_DATA

#define GLU_TESS_COMBINE_DATA   100111

Definition at line 229 of file glu.h.

◆ GLU_TESS_COORD_TOO_LARGE

#define GLU_TESS_COORD_TOO_LARGE   100155

Definition at line 256 of file glu.h.

◆ GLU_TESS_EDGE_FLAG

#define GLU_TESS_EDGE_FLAG   100104

Definition at line 221 of file glu.h.

◆ GLU_TESS_EDGE_FLAG_DATA

#define GLU_TESS_EDGE_FLAG_DATA   100110

Definition at line 228 of file glu.h.

◆ GLU_TESS_END

#define GLU_TESS_END   100102

Definition at line 218 of file glu.h.

◆ GLU_TESS_END_DATA

#define GLU_TESS_END_DATA   100108

Definition at line 226 of file glu.h.

◆ GLU_TESS_ERROR

#define GLU_TESS_ERROR   100103

Definition at line 220 of file glu.h.

◆ GLU_TESS_ERROR1

#define GLU_TESS_ERROR1   100151

Definition at line 244 of file glu.h.

◆ GLU_TESS_ERROR2

#define GLU_TESS_ERROR2   100152

Definition at line 245 of file glu.h.

◆ GLU_TESS_ERROR3

#define GLU_TESS_ERROR3   100153

Definition at line 246 of file glu.h.

◆ GLU_TESS_ERROR4

#define GLU_TESS_ERROR4   100154

Definition at line 247 of file glu.h.

◆ GLU_TESS_ERROR5

#define GLU_TESS_ERROR5   100155

Definition at line 248 of file glu.h.

◆ GLU_TESS_ERROR6

#define GLU_TESS_ERROR6   100156

Definition at line 249 of file glu.h.

◆ GLU_TESS_ERROR7

#define GLU_TESS_ERROR7   100157

Definition at line 250 of file glu.h.

◆ GLU_TESS_ERROR8

#define GLU_TESS_ERROR8   100158

Definition at line 251 of file glu.h.

◆ GLU_TESS_ERROR_DATA

#define GLU_TESS_ERROR_DATA   100109

Definition at line 227 of file glu.h.

◆ GLU_TESS_MAX_COORD

#define GLU_TESS_MAX_COORD   1.0e150

Definition at line 284 of file glu.h.

◆ GLU_TESS_MISSING_BEGIN_CONTOUR

#define GLU_TESS_MISSING_BEGIN_CONTOUR   100152

Definition at line 253 of file glu.h.

◆ GLU_TESS_MISSING_BEGIN_POLYGON

#define GLU_TESS_MISSING_BEGIN_POLYGON   100151

Definition at line 252 of file glu.h.

◆ GLU_TESS_MISSING_END_CONTOUR

#define GLU_TESS_MISSING_END_CONTOUR   100154

Definition at line 255 of file glu.h.

◆ GLU_TESS_MISSING_END_POLYGON

#define GLU_TESS_MISSING_END_POLYGON   100153

Definition at line 254 of file glu.h.

◆ GLU_TESS_NEED_COMBINE_CALLBACK

#define GLU_TESS_NEED_COMBINE_CALLBACK   100156

Definition at line 257 of file glu.h.

◆ GLU_TESS_TOLERANCE

#define GLU_TESS_TOLERANCE   100142

Definition at line 241 of file glu.h.

◆ GLU_TESS_VERTEX

#define GLU_TESS_VERTEX   100101

Definition at line 216 of file glu.h.

◆ GLU_TESS_VERTEX_DATA

#define GLU_TESS_VERTEX_DATA   100107

Definition at line 225 of file glu.h.

◆ GLU_TESS_WINDING_ABS_GEQ_TWO

#define GLU_TESS_WINDING_ABS_GEQ_TWO   100134

Definition at line 264 of file glu.h.

◆ GLU_TESS_WINDING_NEGATIVE

#define GLU_TESS_WINDING_NEGATIVE   100133

Definition at line 263 of file glu.h.

◆ GLU_TESS_WINDING_NONZERO

#define GLU_TESS_WINDING_NONZERO   100131

Definition at line 261 of file glu.h.

◆ GLU_TESS_WINDING_ODD

#define GLU_TESS_WINDING_ODD   100130

Definition at line 260 of file glu.h.

◆ GLU_TESS_WINDING_POSITIVE

#define GLU_TESS_WINDING_POSITIVE   100132

Definition at line 262 of file glu.h.

◆ GLU_TESS_WINDING_RULE

#define GLU_TESS_WINDING_RULE   100140

Definition at line 239 of file glu.h.

◆ GLU_TRUE

#define GLU_TRUE   1

Definition at line 76 of file glu.h.

◆ GLU_U_STEP

#define GLU_U_STEP   100206

Definition at line 173 of file glu.h.

◆ GLU_UNKNOWN

#define GLU_UNKNOWN   100124

Definition at line 236 of file glu.h.

◆ GLU_V_STEP

#define GLU_V_STEP   100207

Definition at line 174 of file glu.h.

◆ GLU_VERSION

#define GLU_VERSION   100800

Definition at line 84 of file glu.h.

◆ GLU_VERSION_1_1

#define GLU_VERSION_1_1   1

Definition at line 79 of file glu.h.

◆ GLU_VERSION_1_2

#define GLU_VERSION_1_2   1

Definition at line 80 of file glu.h.

◆ GLU_VERSION_1_3

#define GLU_VERSION_1_3   1

Definition at line 81 of file glu.h.

◆ GLU_VERTEX

#define GLU_VERTEX   100101

Definition at line 217 of file glu.h.

Typedef Documentation

◆ GLUnurbs

Definition at line 274 of file glu.h.

◆ GLUnurbsObj

Definition at line 279 of file glu.h.

◆ GLUquadric

Definition at line 275 of file glu.h.

◆ GLUquadricObj

Definition at line 280 of file glu.h.

◆ GLUtesselator

Definition at line 276 of file glu.h.

◆ GLUtesselatorObj

Definition at line 281 of file glu.h.

◆ GLUtriangulatorObj

Definition at line 282 of file glu.h.

Function Documentation

◆ gluBeginCurve()

GLAPI void GLAPIENTRY gluBeginCurve ( GLUnurbs nurb)

Definition at line 99 of file glinterface.cc.

100 {
101  r->bgncurve(0);
102 }
GLdouble GLdouble GLdouble r
Definition: gl.h:2055

◆ gluBeginPolygon()

GLAPI void GLAPIENTRY gluBeginPolygon ( GLUtesselator tess)

Definition at line 611 of file tess.c.

612 {
613  gluTessBeginPolygon( tess, NULL );
614  gluTessBeginContour( tess );
615 }
void GLAPIENTRY gluTessBeginPolygon(GLUtesselator *tess, void *data)
Definition: tess.c:462
smooth NULL
Definition: ftsmooth.c:416
void GLAPIENTRY gluTessBeginContour(GLUtesselator *tess)
Definition: tess.c:476

◆ gluBeginSurface()

GLAPI void GLAPIENTRY gluBeginSurface ( GLUnurbs nurb)

Definition at line 89 of file glinterface.cc.

90 {
91 #ifdef DOWN_LOAD_NURBS
92 surfcount++;
93 tempTrim = OTL_make(10,10);
94 #endif
95  r->bgnsurface(0);
96 }
GLdouble GLdouble GLdouble r
Definition: gl.h:2055

◆ gluBeginTrim()

GLAPI void GLAPIENTRY gluBeginTrim ( GLUnurbs nurb)

Definition at line 131 of file glinterface.cc.

132 {
133 #ifdef DOWN_LOAD_NURBS
134 OTL_bgnTrim(tempTrim);
135 #endif
136 
137  r->bgntrim();
138 }
GLdouble GLdouble GLdouble r
Definition: gl.h:2055

◆ gluBuild1DMipmapLevels()

GLAPI GLint GLAPIENTRY gluBuild1DMipmapLevels ( GLenum  target,
GLint  internalFormat,
GLsizei  width,
GLenum  format,
GLenum  type,
GLint  level,
GLint  base,
GLint  max,
const void data 
)

Definition at line 3643 of file mipmap.c.

3648 {
3649  int levels;
3650 
3652  if (rc != 0) return rc;
3653 
3654  if (width < 1) {
3655  return GLU_INVALID_VALUE;
3656  }
3657 
3658  levels = computeLog(width);
3659 
3660  levels+= userLevel;
3661  if (!isLegalLevels(userLevel,baseLevel,maxLevel,levels))
3662  return GLU_INVALID_VALUE;
3663 
3665  width,
3666  width,format, type,
3667  userLevel, baseLevel, maxLevel,
3668  data);
3669 } /* gluBuild1DMipmapLevels() */
GLint GLint GLsizei width
Definition: gl.h:1546
GLsizei levels
Definition: glext.h:7884
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
static int gluBuild1DMipmapLevelsCore(GLenum, GLint, GLsizei, GLsizei, GLenum, GLenum, GLint, GLint, GLint, const void *)
Definition: mipmap.c:3547
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
GLenum internalFormat
Definition: glext.h:8404
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
static GLboolean isLegalLevels(GLint, GLint, GLint, GLint)
Definition: mipmap.c:3393
#define GLU_INVALID_VALUE
Definition: glu.h:89
static int checkMipmapArgs(GLenum, GLenum, GLenum)
Definition: mipmap.c:3270
static int computeLog(GLuint value)
Definition: mipmap.c:287
GLenum target
Definition: glext.h:7315

◆ gluBuild1DMipmaps()

GLAPI GLint GLAPIENTRY gluBuild1DMipmaps ( GLenum  target,
GLint  internalFormat,
GLsizei  width,
GLenum  format,
GLenum  type,
const void data 
)

Definition at line 3672 of file mipmap.c.

3675 {
3676  GLint widthPowerOf2;
3677  int levels;
3678  GLint dummy;
3679 
3681  if (rc != 0) return rc;
3682 
3683  if (width < 1) {
3684  return GLU_INVALID_VALUE;
3685  }
3686 
3687  closestFit(target,width,1,internalFormat,format,type,&widthPowerOf2,&dummy);
3688  levels = computeLog(widthPowerOf2);
3689 
3691  width,
3692  widthPowerOf2,
3693  format,type,0,0,levels,data);
3694 }
GLint GLint GLsizei width
Definition: gl.h:1546
GLsizei levels
Definition: glext.h:7884
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
static int gluBuild1DMipmapLevelsCore(GLenum, GLint, GLsizei, GLsizei, GLenum, GLenum, GLint, GLint, GLint, const void *)
Definition: mipmap.c:3547
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
GLenum internalFormat
Definition: glext.h:8404
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
#define GLU_INVALID_VALUE
Definition: glu.h:89
unsigned char dummy
Definition: maze.c:118
static int checkMipmapArgs(GLenum, GLenum, GLenum)
Definition: mipmap.c:3270
static int computeLog(GLuint value)
Definition: mipmap.c:287
GLenum target
Definition: glext.h:7315
int GLint
Definition: gl.h:156
static void closestFit(GLenum, GLint, GLint, GLint, GLenum, GLenum, GLint *, GLint *)
Definition: mipmap.c:3410

◆ gluBuild2DMipmapLevels()

GLAPI GLint GLAPIENTRY gluBuild2DMipmapLevels ( GLenum  target,
GLint  internalFormat,
GLsizei  width,
GLsizei  height,
GLenum  format,
GLenum  type,
GLint  level,
GLint  base,
GLint  max,
const void data 
)

Definition at line 4552 of file mipmap.c.

4557 {
4558  int level, levels;
4559 
4561  if (rc != 0) return rc;
4562 
4563  if (width < 1 || height < 1) {
4564  return GLU_INVALID_VALUE;
4565  }
4566 
4567  levels = computeLog(width);
4568  level = computeLog(height);
4569  if (level > levels) levels=level;
4570 
4571  levels+= userLevel;
4572  if (!isLegalLevels(userLevel,baseLevel,maxLevel,levels))
4573  return GLU_INVALID_VALUE;
4574 
4576  width, height,
4577  width, height,
4578  format, type,
4579  userLevel, baseLevel, maxLevel,
4580  data);
4581 } /* gluBuild2DMipmapLevels() */
GLint level
Definition: gl.h:1546
GLint GLint GLsizei width
Definition: gl.h:1546
GLsizei levels
Definition: glext.h:7884
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
GLenum internalFormat
Definition: glext.h:8404
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
static GLboolean isLegalLevels(GLint, GLint, GLint, GLint)
Definition: mipmap.c:3393
#define GLU_INVALID_VALUE
Definition: glu.h:89
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
static int checkMipmapArgs(GLenum, GLenum, GLenum)
Definition: mipmap.c:3270
static int computeLog(GLuint value)
Definition: mipmap.c:287
GLenum target
Definition: glext.h:7315
static int gluBuild2DMipmapLevelsCore(GLenum, GLint, GLsizei, GLsizei, GLsizei, GLsizei, GLenum, GLenum, GLint, GLint, GLint, const void *)
Definition: mipmap.c:3802

◆ gluBuild2DMipmaps()

GLAPI GLint GLAPIENTRY gluBuild2DMipmaps ( GLenum  target,
GLint  internalFormat,
GLsizei  width,
GLsizei  height,
GLenum  format,
GLenum  type,
const void data 
)

Definition at line 4584 of file mipmap.c.

4588 {
4589  GLint widthPowerOf2, heightPowerOf2;
4590  int level, levels;
4591 
4593  if (rc != 0) return rc;
4594 
4595  if (width < 1 || height < 1) {
4596  return GLU_INVALID_VALUE;
4597  }
4598 
4600  &widthPowerOf2,&heightPowerOf2);
4601 
4602  levels = computeLog(widthPowerOf2);
4603  level = computeLog(heightPowerOf2);
4604  if (level > levels) levels=level;
4605 
4607  width, height,
4608  widthPowerOf2,heightPowerOf2,
4609  format,type,
4610  0,0,levels,data);
4611 } /* gluBuild2DMipmaps() */
GLint level
Definition: gl.h:1546
GLint GLint GLsizei width
Definition: gl.h:1546
GLsizei levels
Definition: glext.h:7884
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
GLenum internalFormat
Definition: glext.h:8404
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
#define GLU_INVALID_VALUE
Definition: glu.h:89
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
static int checkMipmapArgs(GLenum, GLenum, GLenum)
Definition: mipmap.c:3270
static int computeLog(GLuint value)
Definition: mipmap.c:287
GLenum target
Definition: glext.h:7315
int GLint
Definition: gl.h:156
static void closestFit(GLenum, GLint, GLint, GLint, GLenum, GLenum, GLint *, GLint *)
Definition: mipmap.c:3410
static int gluBuild2DMipmapLevelsCore(GLenum, GLint, GLsizei, GLsizei, GLsizei, GLsizei, GLenum, GLenum, GLint, GLint, GLint, const void *)
Definition: mipmap.c:3802

◆ gluBuild3DMipmapLevels()

GLAPI GLint GLAPIENTRY gluBuild3DMipmapLevels ( GLenum  target,
GLint  internalFormat,
GLsizei  width,
GLsizei  height,
GLsizei  depth,
GLenum  format,
GLenum  type,
GLint  level,
GLint  base,
GLint  max,
const void data 
)

Definition at line 8444 of file mipmap.c.

8449 {
8450  int level, levels;
8451 
8453  if (rc != 0) return rc;
8454 
8455  if (width < 1 || height < 1 || depth < 1) {
8456  return GLU_INVALID_VALUE;
8457  }
8458 
8459  if(type == GL_BITMAP) {
8460  return GLU_INVALID_ENUM;
8461  }
8462 
8463  levels = computeLog(width);
8464  level = computeLog(height);
8465  if (level > levels) levels=level;
8466  level = computeLog(depth);
8467  if (level > levels) levels=level;
8468 
8469  levels+= userLevel;
8470  if (!isLegalLevels(userLevel,baseLevel,maxLevel,levels))
8471  return GLU_INVALID_VALUE;
8472 
8474  width, height, depth,
8475  width, height, depth,
8476  format, type,
8477  userLevel, baseLevel, maxLevel,
8478  data);
8479 } /* gluBuild3DMipmapLevels() */
GLint level
Definition: gl.h:1546
GLint GLint GLsizei width
Definition: gl.h:1546
#define GL_BITMAP
Definition: gl.h:497
GLsizei levels
Definition: glext.h:7884
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
static int gluBuild3DMipmapLevelsCore(GLenum, GLint, GLsizei, GLsizei, GLsizei, GLsizei, GLsizei, GLsizei, GLenum, GLenum, GLint, GLint, GLint, const void *)
Definition: mipmap.c:7720
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
GLenum internalFormat
Definition: glext.h:8404
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLint GLint GLsizei GLsizei GLsizei depth
Definition: gl.h:1546
static GLboolean isLegalLevels(GLint, GLint, GLint, GLint)
Definition: mipmap.c:3393
#define GLU_INVALID_VALUE
Definition: glu.h:89
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
static int checkMipmapArgs(GLenum, GLenum, GLenum)
Definition: mipmap.c:3270
#define GLU_INVALID_ENUM
Definition: glu.h:88
static int computeLog(GLuint value)
Definition: mipmap.c:287
GLenum target
Definition: glext.h:7315

◆ gluBuild3DMipmaps()

GLAPI GLint GLAPIENTRY gluBuild3DMipmaps ( GLenum  target,
GLint  internalFormat,
GLsizei  width,
GLsizei  height,
GLsizei  depth,
GLenum  format,
GLenum  type,
const void data 
)

Definition at line 8482 of file mipmap.c.

8485 {
8486  GLint widthPowerOf2, heightPowerOf2, depthPowerOf2;
8487  int level, levels;
8488 
8490  if (rc != 0) return rc;
8491 
8492  if (width < 1 || height < 1 || depth < 1) {
8493  return GLU_INVALID_VALUE;
8494  }
8495 
8496  if(type == GL_BITMAP) {
8497  return GLU_INVALID_ENUM;
8498  }
8499 
8501  &widthPowerOf2,&heightPowerOf2,&depthPowerOf2);
8502 
8503  levels = computeLog(widthPowerOf2);
8504  level = computeLog(heightPowerOf2);
8505  if (level > levels) levels=level;
8506  level = computeLog(depthPowerOf2);
8507  if (level > levels) levels=level;
8508 
8510  width, height, depth,
8511  widthPowerOf2, heightPowerOf2,
8512  depthPowerOf2,
8513  format, type, 0, 0, levels,
8514  data);
8515 } /* gluBuild3DMipmaps() */
GLint level
Definition: gl.h:1546
GLint GLint GLsizei width
Definition: gl.h:1546
#define GL_BITMAP
Definition: gl.h:497
GLsizei levels
Definition: glext.h:7884
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
static int gluBuild3DMipmapLevelsCore(GLenum, GLint, GLsizei, GLsizei, GLsizei, GLsizei, GLsizei, GLsizei, GLenum, GLenum, GLint, GLint, GLint, const void *)
Definition: mipmap.c:7720
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
GLenum internalFormat
Definition: glext.h:8404
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLint GLint GLsizei GLsizei GLsizei depth
Definition: gl.h:1546
#define GLU_INVALID_VALUE
Definition: glu.h:89
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
static int checkMipmapArgs(GLenum, GLenum, GLenum)
Definition: mipmap.c:3270
#define GLU_INVALID_ENUM
Definition: glu.h:88
static int computeLog(GLuint value)
Definition: mipmap.c:287
GLenum target
Definition: glext.h:7315
int GLint
Definition: gl.h:156
static void closestFit3D(GLenum target, GLint width, GLint height, GLint depth, GLint internalFormat, GLenum format, GLenum type, GLint *newWidth, GLint *newHeight, GLint *newDepth)
Definition: mipmap.c:7410

◆ gluCheckExtension()

GLAPI GLboolean GLAPIENTRY gluCheckExtension ( const GLubyte extName,
const GLubyte extString 
)

Definition at line 63 of file registry.c.

64 {
66  char *word;
67  char *lookHere;
68  char *deleteThis;
69 
70  if (extString == NULL) return GL_FALSE;
71 
72  deleteThis = lookHere = (char *)malloc(strlen((const char *)extString)+1);
73  if (lookHere == NULL)
74  return GL_FALSE;
75  /* strtok() will modify string, so copy it somewhere */
76  strcpy(lookHere,(const char *)extString);
77 
78  while ((word= strtok(lookHere," ")) != NULL) {
79  if (strcmp(word,(const char *)extName) == 0) {
80  flag = GL_TRUE;
81  break;
82  }
83  lookHere = NULL; /* get next token */
84  }
85  free((void *)deleteThis);
86  return flag;
87 } /* gluCheckExtension() */
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
#define GL_FALSE
Definition: gl.h:173
#define free
Definition: debug_ros.c:5
unsigned char GLboolean
Definition: gl.h:151
smooth NULL
Definition: ftsmooth.c:416
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
#define GL_TRUE
Definition: gl.h:174
char * strtok(char *String, const char *Delimiters)
Definition: utclib.c:338
const WCHAR * word
Definition: lex.c:78
char * strcpy(char *DstString, const char *SrcString)
Definition: utclib.c:388
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
#define malloc
Definition: debug_ros.c:4

◆ gluCylinder()

GLAPI void GLAPIENTRY gluCylinder ( GLUquadric quad,
GLdouble  base,
GLdouble  top,
GLdouble  height,
GLint  slices,
GLint  stacks 
)

Definition at line 150 of file quad.c.

152 {
153  GLint i,j;
154  GLfloat sinCache[CACHE_SIZE];
155  GLfloat cosCache[CACHE_SIZE];
156  GLfloat sinCache2[CACHE_SIZE];
157  GLfloat cosCache2[CACHE_SIZE];
158  GLfloat sinCache3[CACHE_SIZE];
159  GLfloat cosCache3[CACHE_SIZE];
160  GLfloat angle;
161  GLfloat zLow, zHigh;
162  GLfloat sintemp, costemp;
163  GLfloat length;
164  GLfloat deltaRadius;
165  GLfloat zNormal;
166  GLfloat xyNormalRatio;
167  GLfloat radiusLow, radiusHigh;
168  int needCache2, needCache3;
169 
170  if (slices >= CACHE_SIZE) slices = CACHE_SIZE-1;
171 
172  if (slices < 2 || stacks < 1 || baseRadius < 0.0 || topRadius < 0.0 ||
173  height < 0.0) {
175  return;
176  }
177 
178  /* Compute length (needed for normal calculations) */
179  deltaRadius = baseRadius - topRadius;
180  length = SQRT(deltaRadius*deltaRadius + height*height);
181  if (length == 0.0) {
183  return;
184  }
185 
186  /* Cache is the vertex locations cache */
187  /* Cache2 is the various normals at the vertices themselves */
188  /* Cache3 is the various normals for the faces */
189  needCache2 = needCache3 = 0;
190  if (qobj->normals == GLU_SMOOTH) {
191  needCache2 = 1;
192  }
193 
194  if (qobj->normals == GLU_FLAT) {
195  if (qobj->drawStyle != GLU_POINT) {
196  needCache3 = 1;
197  }
198  if (qobj->drawStyle == GLU_LINE) {
199  needCache2 = 1;
200  }
201  }
202 
203  zNormal = deltaRadius / length;
204  xyNormalRatio = height / length;
205 
206  for (i = 0; i < slices; i++) {
207  angle = 2 * PI * i / slices;
208  if (needCache2) {
209  if (qobj->orientation == GLU_OUTSIDE) {
210  sinCache2[i] = xyNormalRatio * SIN(angle);
211  cosCache2[i] = xyNormalRatio * COS(angle);
212  } else {
213  sinCache2[i] = -xyNormalRatio * SIN(angle);
214  cosCache2[i] = -xyNormalRatio * COS(angle);
215  }
216  }
217  sinCache[i] = SIN(angle);
218  cosCache[i] = COS(angle);
219  }
220 
221  if (needCache3) {
222  for (i = 0; i < slices; i++) {
223  angle = 2 * PI * (i-0.5) / slices;
224  if (qobj->orientation == GLU_OUTSIDE) {
225  sinCache3[i] = xyNormalRatio * SIN(angle);
226  cosCache3[i] = xyNormalRatio * COS(angle);
227  } else {
228  sinCache3[i] = -xyNormalRatio * SIN(angle);
229  cosCache3[i] = -xyNormalRatio * COS(angle);
230  }
231  }
232  }
233 
234  sinCache[slices] = sinCache[0];
235  cosCache[slices] = cosCache[0];
236  if (needCache2) {
237  sinCache2[slices] = sinCache2[0];
238  cosCache2[slices] = cosCache2[0];
239  }
240  if (needCache3) {
241  sinCache3[slices] = sinCache3[0];
242  cosCache3[slices] = cosCache3[0];
243  }
244 
245  switch (qobj->drawStyle) {
246  case GLU_FILL:
247  /* Note:
248  ** An argument could be made for using a TRIANGLE_FAN for the end
249  ** of the cylinder of either radii is 0.0 (a cone). However, a
250  ** TRIANGLE_FAN would not work in smooth shading mode (the common
251  ** case) because the normal for the apex is different for every
252  ** triangle (and TRIANGLE_FAN doesn't let me respecify that normal).
253  ** Now, my choice is GL_TRIANGLES, or leave the GL_QUAD_STRIP and
254  ** just let the GL trivially reject one of the two triangles of the
255  ** QUAD. GL_QUAD_STRIP is probably faster, so I will leave this code
256  ** alone.
257  */
258  for (j = 0; j < stacks; j++) {
259  zLow = j * height / stacks;
260  zHigh = (j + 1) * height / stacks;
261  radiusLow = baseRadius - deltaRadius * ((float) j / stacks);
262  radiusHigh = baseRadius - deltaRadius * ((float) (j + 1) / stacks);
263 
265  for (i = 0; i <= slices; i++) {
266  switch(qobj->normals) {
267  case GLU_FLAT:
268  glNormal3f(sinCache3[i], cosCache3[i], zNormal);
269  break;
270  case GLU_SMOOTH:
271  glNormal3f(sinCache2[i], cosCache2[i], zNormal);
272  break;
273  case GLU_NONE:
274  default:
275  break;
276  }
277  if (qobj->orientation == GLU_OUTSIDE) {
278  if (qobj->textureCoords) {
279  glTexCoord2f(1 - (float) i / slices,
280  (float) j / stacks);
281  }
282  glVertex3f(radiusLow * sinCache[i],
283  radiusLow * cosCache[i], zLow);
284  if (qobj->textureCoords) {
285  glTexCoord2f(1 - (float) i / slices,
286  (float) (j+1) / stacks);
287  }
288  glVertex3f(radiusHigh * sinCache[i],
289  radiusHigh * cosCache[i], zHigh);
290  } else {
291  if (qobj->textureCoords) {
292  glTexCoord2f(1 - (float) i / slices,
293  (float) (j+1) / stacks);
294  }
295  glVertex3f(radiusHigh * sinCache[i],
296  radiusHigh * cosCache[i], zHigh);
297  if (qobj->textureCoords) {
298  glTexCoord2f(1 - (float) i / slices,
299  (float) j / stacks);
300  }
301  glVertex3f(radiusLow * sinCache[i],
302  radiusLow * cosCache[i], zLow);
303  }
304  }
305  glEnd();
306  }
307  break;
308  case GLU_POINT:
310  for (i = 0; i < slices; i++) {
311  switch(qobj->normals) {
312  case GLU_FLAT:
313  case GLU_SMOOTH:
314  glNormal3f(sinCache2[i], cosCache2[i], zNormal);
315  break;
316  case GLU_NONE:
317  default:
318  break;
319  }
320  sintemp = sinCache[i];
321  costemp = cosCache[i];
322  for (j = 0; j <= stacks; j++) {
323  zLow = j * height / stacks;
324  radiusLow = baseRadius - deltaRadius * ((float) j / stacks);
325 
326  if (qobj->textureCoords) {
327  glTexCoord2f(1 - (float) i / slices,
328  (float) j / stacks);
329  }
330  glVertex3f(radiusLow * sintemp,
331  radiusLow * costemp, zLow);
332  }
333  }
334  glEnd();
335  break;
336  case GLU_LINE:
337  for (j = 1; j < stacks; j++) {
338  zLow = j * height / stacks;
339  radiusLow = baseRadius - deltaRadius * ((float) j / stacks);
340 
342  for (i = 0; i <= slices; i++) {
343  switch(qobj->normals) {
344  case GLU_FLAT:
345  glNormal3f(sinCache3[i], cosCache3[i], zNormal);
346  break;
347  case GLU_SMOOTH:
348  glNormal3f(sinCache2[i], cosCache2[i], zNormal);
349  break;
350  case GLU_NONE:
351  default:
352  break;
353  }
354  if (qobj->textureCoords) {
355  glTexCoord2f(1 - (float) i / slices,
356  (float) j / stacks);
357  }
358  glVertex3f(radiusLow * sinCache[i],
359  radiusLow * cosCache[i], zLow);
360  }
361  glEnd();
362  }
363  /* Intentionally fall through here... */
364  case GLU_SILHOUETTE:
365  for (j = 0; j <= stacks; j += stacks) {
366  zLow = j * height / stacks;
367  radiusLow = baseRadius - deltaRadius * ((float) j / stacks);
368 
370  for (i = 0; i <= slices; i++) {
371  switch(qobj->normals) {
372  case GLU_FLAT:
373  glNormal3f(sinCache3[i], cosCache3[i], zNormal);
374  break;
375  case GLU_SMOOTH:
376  glNormal3f(sinCache2[i], cosCache2[i], zNormal);
377  break;
378  case GLU_NONE:
379  default:
380  break;
381  }
382  if (qobj->textureCoords) {
383  glTexCoord2f(1 - (float) i / slices,
384  (float) j / stacks);
385  }
386  glVertex3f(radiusLow * sinCache[i], radiusLow * cosCache[i],
387  zLow);
388  }
389  glEnd();
390  }
391  for (i = 0; i < slices; i++) {
392  switch(qobj->normals) {
393  case GLU_FLAT:
394  case GLU_SMOOTH:
395  glNormal3f(sinCache2[i], cosCache2[i], 0.0);
396  break;
397  case GLU_NONE:
398  default:
399  break;
400  }
401  sintemp = sinCache[i];
402  costemp = cosCache[i];
404  for (j = 0; j <= stacks; j++) {
405  zLow = j * height / stacks;
406  radiusLow = baseRadius - deltaRadius * ((float) j / stacks);
407 
408  if (qobj->textureCoords) {
409  glTexCoord2f(1 - (float) i / slices,
410  (float) j / stacks);
411  }
412  glVertex3f(radiusLow * sintemp,
413  radiusLow * costemp, zLow);
414  }
415  glEnd();
416  }
417  break;
418  default:
419  break;
420  }
421 }
static void gluQuadricError(GLUquadric *qobj, GLenum which)
Definition: quad.c:78
#define SQRT
Definition: gluint.h:45
#define PI
Definition: quad.c:43
#define GL_POINTS
Definition: gl.h:190
GLAPI void GLAPIENTRY glVertex3f(GLfloat x, GLfloat y, GLfloat z)
#define GLU_FILL
Definition: glu.h:198
GLfloat angle
Definition: glext.h:10853
#define GLU_POINT
Definition: glu.h:196
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
#define CACHE_SIZE
Definition: quad.c:40
#define COS
Definition: gluint.h:43
#define SIN
Definition: gluint.h:44
GLAPI void GLAPIENTRY glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz)
#define GL_LINE_STRIP
Definition: gl.h:193
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
GLenum GLuint GLenum GLsizei length
Definition: glext.h:5579
#define GLU_NONE
Definition: glu.h:207
#define GLU_LINE
Definition: glu.h:197
GLAPI void GLAPIENTRY glBegin(GLenum mode)
#define GLU_INVALID_VALUE
Definition: glu.h:89
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
#define GLU_SILHOUETTE
Definition: glu.h:199
#define GL_QUAD_STRIP
Definition: gl.h:198
#define GLU_SMOOTH
Definition: glu.h:205
GLAPI void GLAPIENTRY glTexCoord2f(GLfloat s, GLfloat t)
float GLfloat
Definition: gl.h:161
GLAPI void GLAPIENTRY glEnd(void)
int GLint
Definition: gl.h:156
#define GLU_FLAT
Definition: glu.h:206
#define GLU_OUTSIDE
Definition: glu.h:210

◆ gluDeleteNurbsRenderer()

GLAPI void GLAPIENTRY gluDeleteNurbsRenderer ( GLUnurbs nurb)

Definition at line 75 of file glinterface.cc.

76 {
77  delete r;
78 }
GLdouble GLdouble GLdouble r
Definition: gl.h:2055

◆ gluDeleteQuadric()

GLAPI void GLAPIENTRY gluDeleteQuadric ( GLUquadric quad)

Definition at line 73 of file quad.c.

74 {
75  free(state);
76 }
#define free
Definition: debug_ros.c:5
static int state
Definition: maze.c:121

◆ gluDeleteTess()

GLAPI void GLAPIENTRY gluDeleteTess ( GLUtesselator tess)

Definition at line 193 of file tess.c.

194 {
195  RequireState( tess, T_DORMANT );
196  memFree( tess );
197 }
#define memFree
Definition: memalloc.h:41
Definition: tess.h:47
#define RequireState(tess, s)
Definition: tess.c:152

◆ gluDisk()

GLAPI void GLAPIENTRY gluDisk ( GLUquadric quad,
GLdouble  inner,
GLdouble  outer,
GLint  slices,
GLint  loops 
)

Definition at line 424 of file quad.c.

426 {
427  gluPartialDisk(qobj, innerRadius, outerRadius, slices, loops, 0.0, 360.0);
428 }
void GLAPIENTRY gluPartialDisk(GLUquadric *qobj, GLdouble innerRadius, GLdouble outerRadius, GLint slices, GLint loops, GLdouble startAngle, GLdouble sweepAngle)
Definition: quad.c:431

◆ gluEndCurve()

GLAPI void GLAPIENTRY gluEndCurve ( GLUnurbs nurb)

Definition at line 105 of file glinterface.cc.

106 {
107  r->endcurve();
108 }
GLdouble GLdouble GLdouble r
Definition: gl.h:2055

◆ gluEndPolygon()

GLAPI void GLAPIENTRY gluEndPolygon ( GLUtesselator tess)

Definition at line 628 of file tess.c.

629 {
630  gluTessEndContour( tess );
631  gluTessEndPolygon( tess );
632 }
void GLAPIENTRY gluTessEndPolygon(GLUtesselator *tess)
Definition: tess.c:500
void GLAPIENTRY gluTessEndContour(GLUtesselator *tess)
Definition: tess.c:493

◆ gluEndSurface()

GLAPI void GLAPIENTRY gluEndSurface ( GLUnurbs nurb)

Definition at line 111 of file glinterface.cc.

112 {
113 #ifdef DOWN_LOAD_NURBS
114 if(surfcount == 1)
115  otn = OTN_make(1);
116 OTN_insert(otn, tempNurb, tempTrim);
117 if(surfcount >= 1)
118 {
119 #ifdef DEBUG
120 printf("write file\n");
121 #endif
122 OTN_write(otn, "out.otn");
123 
124 }
125 #endif
126 
127  r->endsurface();
128 }
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
#define printf
Definition: config.h:203

◆ gluEndTrim()

GLAPI void GLAPIENTRY gluEndTrim ( GLUnurbs nurb)

Definition at line 141 of file glinterface.cc.

142 {
143 #ifdef DOWN_LOAD_NURBS
144 OTL_endTrim(tempTrim);
145 #endif
146  r->endtrim();
147 }
GLdouble GLdouble GLdouble r
Definition: gl.h:2055

◆ gluErrorString()

GLAPI const GLubyte* GLAPIENTRY gluErrorString ( GLenum  error)

Definition at line 66 of file error.c.

67 {
68  int i;
69  for (i = 0; Errors[i].String; i++) {
70  if (Errors[i].Token == errorCode)
71  return (const GLubyte *) Errors[i].String;
72  }
73  if ((errorCode >= GLU_NURBS_ERROR1) && (errorCode <= GLU_NURBS_ERROR37)) {
74  return (const GLubyte *) __gluNURBSErrorString(errorCode - (GLU_NURBS_ERROR1 - 1));
75  }
76  if ((errorCode >= GLU_TESS_ERROR1) && (errorCode <= GLU_TESS_ERROR6)) {
77  return (const GLubyte *) __gluTessErrorString(errorCode - (GLU_TESS_ERROR1 - 1));
78  }
79  return (const GLubyte *) 0;
80 }
#define GLU_NURBS_ERROR37
Definition: glu.h:164
unsigned char GLubyte
Definition: gl.h:157
_IRQL_requires_same_ _In_ PLSA_STRING _In_ SECURITY_LOGON_TYPE _In_ ULONG _In_ ULONG _In_opt_ PTOKEN_GROUPS _In_ PTOKEN_SOURCE _Out_ PVOID _Out_ PULONG _Inout_ PLUID _Out_ PHANDLE Token
#define GLU_TESS_ERROR6
Definition: glu.h:249
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
#define GLU_NURBS_ERROR1
Definition: glu.h:128
#define GLU_TESS_ERROR1
Definition: glu.h:244
const unsigned char * __gluNURBSErrorString(int errnum)
Definition: glue.c:75
static const struct token_string Errors[]
Definition: error.c:42
const unsigned char * __gluTessErrorString(int errnum)
Definition: glue.c:90

◆ gluGetNurbsProperty()

GLAPI void GLAPIENTRY gluGetNurbsProperty ( GLUnurbs nurb,
GLenum  property,
GLfloat data 
)

Definition at line 359 of file glinterface.cc.

360 {
361  GLfloat nurbsValue;
362 
363  switch(property) {
365  if (r->getautoloadmode()) {
366  *value = GL_TRUE;
367  } else {
368  *value = GL_FALSE;
369  }
370  break;
371  case GLU_CULLING:
372  r->getnurbsproperty(GL_MAP2_VERTEX_3, N_CULLING, &nurbsValue);
373  if (nurbsValue == N_CULLINGON) {
374  *value = GL_TRUE;
375  } else {
376  *value = GL_FALSE;
377  }
378  break;
379  case GLU_SAMPLING_METHOD:
380  r->getnurbsproperty(GL_MAP2_VERTEX_3, N_SAMPLINGMETHOD, value);
381  if(*value == N_PATHLENGTH)
383  else if(*value == N_PARAMETRICDISTANCE)
385  else if(*value == N_DOMAINDISTANCE)
387  else if(*value == N_OBJECTSPACE_PATH)
389  else if(*value == N_OBJECTSPACE_PARA)
391  break;
393  r->getnurbsproperty(GL_MAP2_VERTEX_3, N_PIXEL_TOLERANCE, value);
394  break;
396  r->getnurbsproperty(GL_MAP2_VERTEX_3, N_ERROR_TOLERANCE, value);
397  break;
398 
399  case GLU_U_STEP:
400  r->getnurbsproperty(GL_MAP2_VERTEX_3, N_S_STEPS, value);
401  break;
402  case GLU_V_STEP:
403  r->getnurbsproperty(GL_MAP2_VERTEX_3, N_T_STEPS, value);
404  break;
405  case GLU_DISPLAY_MODE:
406  r->getnurbsproperty(N_DISPLAY, &nurbsValue);
407  if (nurbsValue == N_FILL) {
408  *value = GLU_FILL;
409  } else if (nurbsValue == N_OUTLINE_POLY) {
411  } else {
413  }
414  break;
415 
416  case GLU_NURBS_MODE:
417  if(r->is_callback())
419  else
421  break;
422 
423  default:
424  r->postError(GLU_INVALID_ENUM);
425  return;
426  }
427 }
#define N_OUTLINE_POLY
Definition: nurbsconsts.h:72
#define N_SAMPLINGMETHOD
Definition: nurbsconsts.h:54
#define N_S_STEPS
Definition: nurbsconsts.h:99
#define N_ERROR_TOLERANCE
Definition: nurbsconsts.h:90
#define N_DISPLAY
Definition: nurbsconsts.h:70
#define GLU_NURBS_MODE
Definition: glu.h:175
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
#define N_FILL
Definition: nurbsconsts.h:71
#define GL_FALSE
Definition: gl.h:173
#define N_CULLINGON
Definition: nurbsconsts.h:53
#define GLU_V_STEP
Definition: glu.h:174
#define GLU_FILL
Definition: glu.h:198
#define GLU_U_STEP
Definition: glu.h:173
#define N_PARAMETRICDISTANCE
Definition: nurbsconsts.h:58
#define N_PIXEL_TOLERANCE
Definition: nurbsconsts.h:89
#define GLU_NURBS_RENDERER
Definition: glu.h:179
#define GLU_OBJECT_PATH_LENGTH
Definition: glu.h:185
#define GLU_DISPLAY_MODE
Definition: glu.h:170
#define GLU_OUTLINE_POLYGON
Definition: glu.h:96
#define N_CULLING
Definition: nurbsconsts.h:51
#define N_OBJECTSPACE_PATH
Definition: nurbsconsts.h:62
#define GLU_OUTLINE_PATCH
Definition: glu.h:97
#define GL_MAP2_VERTEX_3
Definition: gl.h:567
#define GLU_DOMAIN_DISTANCE
Definition: glu.h:189
#define N_PATHLENGTH
Definition: nurbsconsts.h:59
#define GLU_AUTO_LOAD_MATRIX
Definition: glu.h:167
#define N_T_STEPS
Definition: nurbsconsts.h:100
#define N_DOMAINDISTANCE
Definition: nurbsconsts.h:57
#define GLU_SAMPLING_METHOD
Definition: glu.h:172
#define GLU_PATH_LENGTH
Definition: glu.h:187
#define GL_TRUE
Definition: gl.h:174
#define GLU_PARAMETRIC_ERROR
Definition: glu.h:188
#define GLU_CULLING
Definition: glu.h:168
float GLfloat
Definition: gl.h:161
#define GLU_INVALID_ENUM
Definition: glu.h:88
#define GLU_PARAMETRIC_TOLERANCE
Definition: glu.h:171
#define N_OBJECTSPACE_PARA
Definition: nurbsconsts.h:61
#define GLU_OBJECT_PARAMETRIC_ERROR
Definition: glu.h:183
#define GLU_SAMPLING_TOLERANCE
Definition: glu.h:169
#define GLU_NURBS_TESSELLATOR
Definition: glu.h:177

◆ gluGetString()

GLAPI const GLubyte* GLAPIENTRY gluGetString ( GLenum  name)

Definition at line 44 of file registry.c.

45 {
46 
47  if (name == GLU_VERSION) {
48  return versionString;
49  } else if (name == GLU_EXTENSIONS) {
50  return extensionString;
51  }
52  return NULL;
53 }
#define GLU_EXTENSIONS
Definition: glu.h:85
smooth NULL
Definition: ftsmooth.c:416
static const GLubyte versionString[]
Definition: registry.c:37
#define GLU_VERSION
Definition: glu.h:84
static const GLubyte extensionString[]
Definition: registry.c:38
Definition: name.c:36

◆ gluGetTessProperty()

GLAPI void GLAPIENTRY gluGetTessProperty ( GLUtesselator tess,
GLenum  which,
GLdouble data 
)

Definition at line 240 of file tess.c.

241 {
242  switch (which) {
243  case GLU_TESS_TOLERANCE:
244  /* tolerance should be in range [0..1] */
245  assert(0.0 <= tess->relTolerance && tess->relTolerance <= 1.0);
246  *value= tess->relTolerance;
247  break;
254  *value= tess->windingRule;
255  break;
257  assert(tess->boundaryOnly == TRUE || tess->boundaryOnly == FALSE);
258  *value= tess->boundaryOnly;
259  break;
260  default:
261  *value= 0.0;
263  break;
264  }
265 } /* gluGetTessProperty() */
#define GLU_TESS_BOUNDARY_ONLY
Definition: glu.h:240
static GLenum which
Definition: wgl_font.c:159
#define assert(x)
Definition: debug.h:53
#define CALL_ERROR_OR_ERROR_DATA(a)
Definition: tess.h:160
GLboolean boundaryOnly
Definition: tess.h:93
#define GLU_TESS_WINDING_POSITIVE
Definition: glu.h:262
#define TRUE
Definition: tess.c:51
GLenum windingRule
Definition: tess.h:80
#define GLU_TESS_WINDING_ODD
Definition: glu.h:260
#define GLU_TESS_WINDING_RULE
Definition: glu.h:239
#define GLU_INVALID_ENUM
Definition: glu.h:88
#define GLU_TESS_WINDING_NEGATIVE
Definition: glu.h:263
#define GLU_TESS_TOLERANCE
Definition: glu.h:241
#define GLU_TESS_WINDING_ABS_GEQ_TWO
Definition: glu.h:264
#define GLU_TESS_WINDING_NONZERO
Definition: glu.h:261
#define FALSE
Definition: tess.c:54
GLdouble relTolerance
Definition: tess.h:79

◆ gluLoadSamplingMatrices()

GLAPI void GLAPIENTRY gluLoadSamplingMatrices ( GLUnurbs nurb,
const GLfloat model,
const GLfloat perspective,
const GLint view 
)

◆ gluLookAt()

GLAPI void GLAPIENTRY gluLookAt ( GLdouble  eyeX,
GLdouble  eyeY,
GLdouble  eyeZ,
GLdouble  centerX,
GLdouble  centerY,
GLdouble  centerZ,
GLdouble  upX,
GLdouble  upY,
GLdouble  upZ 
)

Definition at line 108 of file project.c.

111 {
112  float forward[3], side[3], up[3];
113  GLfloat m[4][4];
114 
115  forward[0] = centerx - eyex;
116  forward[1] = centery - eyey;
117  forward[2] = centerz - eyez;
118 
119  up[0] = upx;
120  up[1] = upy;
121  up[2] = upz;
122 
123  normalize(forward);
124 
125  /* Side = forward x up */
126  cross(forward, up, side);
127  normalize(side);
128 
129  /* Recompute up as: up = side x forward */
130  cross(side, forward, up);
131 
132  __gluMakeIdentityf(&m[0][0]);
133  m[0][0] = side[0];
134  m[1][0] = side[1];
135  m[2][0] = side[2];
136 
137  m[0][1] = up[0];
138  m[1][1] = up[1];
139  m[2][1] = up[2];
140 
141  m[0][2] = -forward[0];
142  m[1][2] = -forward[1];
143  m[2][2] = -forward[2];
144 
145  glMultMatrixf(&m[0][0]);
146  glTranslated(-eyex, -eyey, -eyez);
147 }
const GLfloat * m
Definition: glext.h:10848
#define up(mutex)
Definition: glue.h:30
static void cross(float v1[3], float v2[3], float result[3])
Definition: project.c:100
static void normalize(float v[3])
Definition: project.c:88
GLAPI void GLAPIENTRY glTranslated(GLdouble x, GLdouble y, GLdouble z)
float GLfloat
Definition: gl.h:161
GLAPI void GLAPIENTRY glMultMatrixf(const GLfloat *m)
static void __gluMakeIdentityf(GLfloat m[16])
Definition: project.c:48

◆ gluNewNurbsRenderer()

GLAPI GLUnurbs* GLAPIENTRY gluNewNurbsRenderer ( void  )

Definition at line 66 of file glinterface.cc.

67 {
68  GLUnurbs *t;
69 
70  t = new GLUnurbs();
71  return t;
72 }
GLdouble GLdouble t
Definition: gl.h:2047
struct GLUnurbs GLUnurbs
Definition: glu.h:274

◆ gluNewQuadric()

GLAPI GLUquadric* GLAPIENTRY gluNewQuadric ( void  )

Definition at line 54 of file quad.c.

55 {
56  GLUquadric *newstate;
57 
58  newstate = (GLUquadric *) malloc(sizeof(GLUquadric));
59  if (newstate == NULL) {
60  /* Can't report an error at this point... */
61  return NULL;
62  }
63  newstate->normals = GLU_SMOOTH;
64  newstate->textureCoords = GL_FALSE;
65  newstate->orientation = GLU_OUTSIDE;
66  newstate->drawStyle = GLU_FILL;
67  newstate->errorCallback = NULL;
68  return newstate;
69 }
GLint orientation
Definition: quad.c:48
#define GL_FALSE
Definition: gl.h:173
GLint normals
Definition: quad.c:46
#define GLU_FILL
Definition: glu.h:198
GLboolean textureCoords
Definition: quad.c:47
smooth NULL
Definition: ftsmooth.c:416
GLint drawStyle
Definition: quad.c:49
#define GLU_SMOOTH
Definition: glu.h:205
#define malloc
Definition: debug_ros.c:4
#define GLU_OUTSIDE
Definition: glu.h:210

◆ gluNewTess()

GLAPI GLUtesselator* GLAPIENTRY gluNewTess ( void  )

Definition at line 92 of file tess.c.

93 {
94  GLUtesselator *tess;
95 
96  /* Only initialize fields which can be changed by the api. Other fields
97  * are initialized where they are used.
98  */
99 
100  if (memInit( MAX_FAST_ALLOC ) == 0) {
101  return 0; /* out of memory */
102  }
103  tess = (GLUtesselator *)memAlloc( sizeof( GLUtesselator ));
104  if (tess == NULL) {
105  return 0; /* out of memory */
106  }
107 
108  tess->state = T_DORMANT;
109 
110  tess->normal[0] = 0;
111  tess->normal[1] = 0;
112  tess->normal[2] = 0;
113 
116  tess->flagBoundary = FALSE;
117  tess->boundaryOnly = FALSE;
118 
119  tess->callBegin = &noBegin;
120  tess->callEdgeFlag = &noEdgeFlag;
121  tess->callVertex = &noVertex;
122  tess->callEnd = &noEnd;
123 
124  tess->callError = &noError;
125  tess->callCombine = &noCombine;
126  tess->callMesh = &noMesh;
127 
128  tess->callBeginData= &__gl_noBeginData;
129  tess->callEdgeFlagData= &__gl_noEdgeFlagData;
130  tess->callVertexData= &__gl_noVertexData;
131  tess->callEndData= &__gl_noEndData;
132  tess->callErrorData= &__gl_noErrorData;
133  tess->callCombineData= &__gl_noCombineData;
134 
135  tess->polygonData= NULL;
136 
137  return tess;
138 }
GLboolean flagBoundary
Definition: tess.h:92
void GLAPIENTRY __gl_noEndData(void *polygonData)
Definition: tess.c:73
static void GLAPIENTRY noEdgeFlag(GLboolean boundaryEdge)
Definition: tess.c:58
static void GLAPIENTRY noVertex(void *data)
Definition: tess.c:59
void GLAPIENTRY __gl_noVertexData(void *data, void *polygonData)
Definition: tess.c:71
enum TessState state
Definition: tess.h:63
void GLAPIENTRY __gl_noCombineData(GLdouble coords[3], void *data[4], GLfloat weight[4], void **outData, void *polygonData)
Definition: tess.c:76
static void GLAPIENTRY noEnd(void)
Definition: tess.c:60
GLdouble normal[3]
Definition: tess.h:73
void GLAPIENTRY __gl_noEdgeFlagData(GLboolean boundaryEdge, void *polygonData)
Definition: tess.c:69
GLboolean boundaryOnly
Definition: tess.h:93
smooth NULL
Definition: ftsmooth.c:416
static void GLAPIENTRY noError(GLenum errnum)
Definition: tess.c:61
static void GLAPIENTRY noMesh(GLUmesh *mesh)
Definition: tess.c:64
void GLAPIENTRY __gl_noErrorData(GLenum errnum, void *polygonData)
Definition: tess.c:74
GLenum windingRule
Definition: tess.h:80
#define GLU_TESS_WINDING_ODD
Definition: glu.h:260
static void GLAPIENTRY noBegin(GLenum type)
Definition: tess.c:57
#define GLU_TESS_DEFAULT_TOLERANCE
Definition: tess.c:47
#define memInit
Definition: memalloc.h:43
static void GLAPIENTRY noCombine(GLdouble coords[3], void *data[4], GLfloat weight[4], void **dataOut)
Definition: tess.c:62
void GLAPIENTRY __gl_noBeginData(GLenum type, void *polygonData)
Definition: tess.c:67
void * polygonData
Definition: tess.h:111
#define MAX_FAST_ALLOC
Definition: tess.c:87
Definition: tess.h:47
#define FALSE
Definition: tess.c:54
#define memAlloc
Definition: memalloc.h:48
GLdouble relTolerance
Definition: tess.h:79

◆ gluNextContour()

GLAPI void GLAPIENTRY gluNextContour ( GLUtesselator tess,
GLenum  type 
)

Definition at line 620 of file tess.c.

621 {
622  gluTessEndContour( tess );
623  gluTessBeginContour( tess );
624 }
void GLAPIENTRY gluTessEndContour(GLUtesselator *tess)
Definition: tess.c:493
void GLAPIENTRY gluTessBeginContour(GLUtesselator *tess)
Definition: tess.c:476

◆ gluNurbsCallback()

GLAPI void GLAPIENTRY gluNurbsCallback ( GLUnurbs nurb,
GLenum  which,
_GLUfuncptr  CallBackFunc 
)

Definition at line 430 of file glinterface.cc.

431 {
432  switch (which) {
433  case GLU_NURBS_BEGIN:
434  case GLU_NURBS_END:
435  case GLU_NURBS_VERTEX:
436  case GLU_NURBS_NORMAL:
438  case GLU_NURBS_COLOR:
440  case GLU_NURBS_END_DATA:
444  case GLU_NURBS_COLOR_DATA:
445  r->putSurfCallBack(which, fn);
446  break;
447 
448  case GLU_NURBS_ERROR:
449  r->errorCallback = (void (APIENTRY *)( GLenum e )) fn;
450  break;
451  default:
452  r->postError(GLU_INVALID_ENUM);
453  return;
454  }
455 }
#define GLU_NURBS_NORMAL
Definition: glu.h:106
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
#define GLU_NURBS_VERTEX
Definition: glu.h:104
static GLenum _GLUfuncptr fn
Definition: wgl_font.c:159
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
static GLenum which
Definition: wgl_font.c:159
#define GLU_NURBS_ERROR
Definition: glu.h:100
#define e
Definition: ke_i.h:82
#define GLU_NURBS_END
Definition: glu.h:112
#define GLU_NURBS_BEGIN_DATA
Definition: glu.h:114
#define GLU_NURBS_BEGIN
Definition: glu.h:102
unsigned int GLenum
Definition: gl.h:150
#define GLU_NURBS_COLOR
Definition: glu.h:108
#define GLU_NURBS_END_DATA
Definition: glu.h:124
#define GLU_NURBS_VERTEX_DATA
Definition: glu.h:116
#define GLU_NURBS_TEXTURE_COORD
Definition: glu.h:110
#define GLU_NURBS_COLOR_DATA
Definition: glu.h:120
#define GLU_INVALID_ENUM
Definition: glu.h:88
#define GLU_NURBS_TEXTURE_COORD_DATA
Definition: glu.h:122
#define APIENTRY
Definition: api.h:79
#define GLU_NURBS_NORMAL_DATA
Definition: glu.h:118

◆ gluNurbsCallbackData()

GLAPI void GLAPIENTRY gluNurbsCallbackData ( GLUnurbs nurb,
GLvoid userData 
)

Definition at line 466 of file glinterface.cc.

467 {
468  gluNurbsCallbackDataEXT(r,userData);
469 }
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
void GLAPIENTRY gluNurbsCallbackDataEXT(GLUnurbs *r, void *userData)
Definition: glinterface.cc:459

◆ gluNurbsCallbackDataEXT()

GLAPI void GLAPIENTRY gluNurbsCallbackDataEXT ( GLUnurbs nurb,
GLvoid userData 
)

Definition at line 459 of file glinterface.cc.

460 {
461  r->setNurbsCallbackData(userData);
462 }
GLdouble GLdouble GLdouble r
Definition: gl.h:2055

Referenced by gluNurbsCallbackData().

◆ gluNurbsCurve()

GLAPI void GLAPIENTRY gluNurbsCurve ( GLUnurbs nurb,
GLint  knotCount,
GLfloat knots,
GLint  stride,
GLfloat control,
GLint  order,
GLenum  type 
)

◆ gluNurbsProperty()

GLAPI void GLAPIENTRY gluNurbsProperty ( GLUnurbs nurb,
GLenum  property,
GLfloat  value 
)

Definition at line 243 of file glinterface.cc.

244 {
245  GLfloat nurbsValue;
246 
247  switch (property) {
248  case GLU_AUTO_LOAD_MATRIX:
249  r->setautoloadmode(value);
250  return;
251 
252  case GLU_CULLING:
253  if (value != 0.0) {
254  nurbsValue = N_CULLINGON;
255  } else {
256  nurbsValue = N_NOCULLING;
257  }
258  r->setnurbsproperty(GL_MAP2_VERTEX_3, N_CULLING, nurbsValue);
259  r->setnurbsproperty(GL_MAP2_VERTEX_4, N_CULLING, nurbsValue);
260  r->setnurbsproperty(GL_MAP1_VERTEX_3, N_CULLING, nurbsValue);
261  r->setnurbsproperty(GL_MAP1_VERTEX_4, N_CULLING, nurbsValue);
262  return;
263 
264  case GLU_SAMPLING_METHOD:
265  if (value == GLU_PATH_LENGTH) {
266  nurbsValue = N_PATHLENGTH;
267  } else if (value == GLU_PARAMETRIC_ERROR) {
268  nurbsValue = N_PARAMETRICDISTANCE;
269  } else if (value == GLU_DOMAIN_DISTANCE) {
270  nurbsValue = N_DOMAINDISTANCE;
271  r->set_is_domain_distance_sampling(1); //optimzing untrimmed case
272 
273  } else if (value == GLU_OBJECT_PARAMETRIC_ERROR) {
274  nurbsValue = N_OBJECTSPACE_PARA;
275  r->setautoloadmode( 0.0 );
276  r->setSamplingMatrixIdentity();
277  } else if (value == GLU_OBJECT_PATH_LENGTH) {
278  nurbsValue = N_OBJECTSPACE_PATH;
279  r->setautoloadmode( 0.0 );
280  r->setSamplingMatrixIdentity();
281  } else {
282  r->postError(GLU_INVALID_VALUE);
283  return;
284  }
285 
286  r->setnurbsproperty(GL_MAP2_VERTEX_3, N_SAMPLINGMETHOD, nurbsValue);
287  r->setnurbsproperty(GL_MAP2_VERTEX_4, N_SAMPLINGMETHOD, nurbsValue);
288  r->setnurbsproperty(GL_MAP1_VERTEX_3, N_SAMPLINGMETHOD, nurbsValue);
289  r->setnurbsproperty(GL_MAP1_VERTEX_4, N_SAMPLINGMETHOD, nurbsValue);
290  return;
291 
293  r->setnurbsproperty(GL_MAP2_VERTEX_3, N_PIXEL_TOLERANCE, value);
294  r->setnurbsproperty(GL_MAP2_VERTEX_4, N_PIXEL_TOLERANCE, value);
295  r->setnurbsproperty(GL_MAP1_VERTEX_3, N_PIXEL_TOLERANCE, value);
296  r->setnurbsproperty(GL_MAP1_VERTEX_4, N_PIXEL_TOLERANCE, value);
297  return;
298 
300  r->setnurbsproperty(GL_MAP2_VERTEX_3, N_ERROR_TOLERANCE, value);
301  r->setnurbsproperty(GL_MAP2_VERTEX_4, N_ERROR_TOLERANCE, value);
302  r->setnurbsproperty(GL_MAP1_VERTEX_3, N_ERROR_TOLERANCE, value);
303  r->setnurbsproperty(GL_MAP1_VERTEX_4, N_ERROR_TOLERANCE, value);
304  return;
305 
306 
307  case GLU_DISPLAY_MODE:
308 
309  if (value == GLU_FILL) {
310  nurbsValue = N_FILL;
311  } else if (value == GLU_OUTLINE_POLYGON) {
312  nurbsValue = N_OUTLINE_POLY;
313  } else if (value == GLU_OUTLINE_PATCH) {
314  nurbsValue = N_OUTLINE_PATCH;
315  } else {
316  r->postError(GLU_INVALID_VALUE);
317  return;
318  }
319  r->setnurbsproperty(N_DISPLAY, nurbsValue);
320 
321  break;
322 
323  case GLU_U_STEP:
324  r->setnurbsproperty(GL_MAP1_VERTEX_3, N_S_STEPS, value);
325  r->setnurbsproperty(GL_MAP1_VERTEX_4, N_S_STEPS, value);
326  r->setnurbsproperty(GL_MAP2_VERTEX_3, N_S_STEPS, value);
327  r->setnurbsproperty(GL_MAP2_VERTEX_4, N_S_STEPS, value);
328 
329  //added for optimizing untrimmed case
330  r->set_domain_distance_u_rate(value);
331  break;
332 
333  case GLU_V_STEP:
334  r->setnurbsproperty(GL_MAP1_VERTEX_3, N_T_STEPS, value);
335  r->setnurbsproperty(GL_MAP1_VERTEX_4, N_T_STEPS, value);
336  r->setnurbsproperty(GL_MAP2_VERTEX_3, N_T_STEPS, value);
337  r->setnurbsproperty(GL_MAP2_VERTEX_4, N_T_STEPS, value);
338 
339  //added for optimizing untrimmed case
340  r->set_domain_distance_v_rate(value);
341  break;
342 
343  case GLU_NURBS_MODE:
345  r->put_callbackFlag(0);
346  else if(value == GLU_NURBS_TESSELLATOR)
347  r->put_callbackFlag(1);
348  else
349  r->postError(GLU_INVALID_ENUM);
350  break;
351 
352  default:
353  r->postError(GLU_INVALID_ENUM);
354  return;
355  }
356 }
#define N_OUTLINE_POLY
Definition: nurbsconsts.h:72
#define GL_MAP1_VERTEX_4
Definition: gl.h:559
#define N_SAMPLINGMETHOD
Definition: nurbsconsts.h:54
#define N_S_STEPS
Definition: nurbsconsts.h:99
#define N_ERROR_TOLERANCE
Definition: nurbsconsts.h:90
#define N_DISPLAY
Definition: nurbsconsts.h:70
#define GLU_NURBS_MODE
Definition: glu.h:175
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
#define N_FILL
Definition: nurbsconsts.h:71
#define N_CULLINGON
Definition: nurbsconsts.h:53
#define GLU_V_STEP
Definition: glu.h:174
#define N_NOCULLING
Definition: nurbsconsts.h:52
#define GLU_FILL
Definition: glu.h:198
#define GLU_U_STEP
Definition: glu.h:173
#define N_PARAMETRICDISTANCE
Definition: nurbsconsts.h:58
#define N_PIXEL_TOLERANCE
Definition: nurbsconsts.h:89
#define N_OUTLINE_PATCH
Definition: nurbsconsts.h:75
#define GL_MAP2_VERTEX_4
Definition: gl.h:568
#define GLU_NURBS_RENDERER
Definition: glu.h:179
#define GLU_OBJECT_PATH_LENGTH
Definition: glu.h:185
#define GLU_DISPLAY_MODE
Definition: glu.h:170
#define GLU_OUTLINE_POLYGON
Definition: glu.h:96
#define N_CULLING
Definition: nurbsconsts.h:51
#define N_OBJECTSPACE_PATH
Definition: nurbsconsts.h:62
#define GLU_OUTLINE_PATCH
Definition: glu.h:97
#define GL_MAP2_VERTEX_3
Definition: gl.h:567
#define GLU_DOMAIN_DISTANCE
Definition: glu.h:189
#define N_PATHLENGTH
Definition: nurbsconsts.h:59
#define GLU_AUTO_LOAD_MATRIX
Definition: glu.h:167
#define GLU_INVALID_VALUE
Definition: glu.h:89
#define N_T_STEPS
Definition: nurbsconsts.h:100
#define N_DOMAINDISTANCE
Definition: nurbsconsts.h:57
#define GLU_SAMPLING_METHOD
Definition: glu.h:172
#define GLU_PATH_LENGTH
Definition: glu.h:187
#define GLU_PARAMETRIC_ERROR
Definition: glu.h:188
#define GLU_CULLING
Definition: glu.h:168
#define GL_MAP1_VERTEX_3
Definition: gl.h:558
float GLfloat
Definition: gl.h:161
#define GLU_INVALID_ENUM
Definition: glu.h:88
#define GLU_PARAMETRIC_TOLERANCE
Definition: glu.h:171
#define N_OBJECTSPACE_PARA
Definition: nurbsconsts.h:61
#define GLU_OBJECT_PARAMETRIC_ERROR
Definition: glu.h:183
#define GLU_SAMPLING_TOLERANCE
Definition: glu.h:169
#define GLU_NURBS_TESSELLATOR
Definition: glu.h:177

◆ gluNurbsSurface()

GLAPI void GLAPIENTRY gluNurbsSurface ( GLUnurbs nurb,
GLint  sKnotCount,
GLfloat sKnots,
GLint  tKnotCount,
GLfloat tKnots,
GLint  sStride,
GLint  tStride,
GLfloat control,
GLint  sOrder,
GLint  tOrder,
GLenum  type 
)

Definition at line 199 of file glinterface.cc.

204 {
205 #ifdef DOWN_LOAD_NURBS
206  {
207  int dimension;
208  switch(type){
209  case GL_MAP2_VERTEX_3:
210  dimension = 3;
211  break;
212  case GL_MAP2_VERTEX_4:
213  dimension = 4;
214  break;
215  default:
216  fprintf(stderr, "error in glinterface.c++, type no implemented\n");
217  exit(1);
218  }
219 tempNurb = nurbSurfMake(sknot_count, sknot,
220  tknot_count, tknot,
221  sorder, torder,
222  dimension,
223  ctlarray,
224  s_stride, t_stride);
225 
226  }
227 #endif
228 
229  r->nurbssurface(sknot_count, sknot, tknot_count, tknot,
230  sizeof(INREAL) * s_stride, sizeof(INREAL) * t_stride,
231  ctlarray, sorder, torder, type);
232 }
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
#define GL_MAP2_VERTEX_4
Definition: gl.h:568
#define INREAL
Definition: types.h:40
#define GL_MAP2_VERTEX_3
Definition: gl.h:567
FILE * stderr
void exit(int exitcode)
Definition: _exit.c:33

◆ gluOrtho2D()

GLAPI void GLAPIENTRY gluOrtho2D ( GLdouble  left,
GLdouble  right,
GLdouble  bottom,
GLdouble  top 
)

Definition at line 57 of file project.c.

58 {
59  glOrtho(left, right, bottom, top, -1, 1);
60 }
GLint GLint bottom
Definition: glext.h:7726
GLint left
Definition: glext.h:7726
GLdouble GLdouble right
Definition: glext.h:10859
GLdouble GLdouble GLdouble GLdouble top
Definition: glext.h:10859
GLAPI void GLAPIENTRY glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val)

◆ gluPartialDisk()

GLAPI void GLAPIENTRY gluPartialDisk ( GLUquadric quad,
GLdouble  inner,
GLdouble  outer,
GLint  slices,
GLint  loops,
GLdouble  start,
GLdouble  sweep 
)

Definition at line 431 of file quad.c.

434 {
435  GLint i,j;
436  GLfloat sinCache[CACHE_SIZE];
437  GLfloat cosCache[CACHE_SIZE];
438  GLfloat angle;
439  GLfloat sintemp, costemp;
440  GLfloat deltaRadius;
441  GLfloat radiusLow, radiusHigh;
442  GLfloat texLow = 0.0, texHigh = 0.0;
443  GLfloat angleOffset;
444  GLint slices2;
445  GLint finish;
446 
447  if (slices >= CACHE_SIZE) slices = CACHE_SIZE-1;
448  if (slices < 2 || loops < 1 || outerRadius <= 0.0 || innerRadius < 0.0 ||
449  innerRadius > outerRadius) {
451  return;
452  }
453 
454  if (sweepAngle < -360.0) sweepAngle = 360.0;
455  if (sweepAngle > 360.0) sweepAngle = 360.0;
456  if (sweepAngle < 0) {
457  startAngle += sweepAngle;
458  sweepAngle = -sweepAngle;
459  }
460 
461  if (sweepAngle == 360.0) {
462  slices2 = slices;
463  } else {
464  slices2 = slices + 1;
465  }
466 
467  /* Compute length (needed for normal calculations) */
468  deltaRadius = outerRadius - innerRadius;
469 
470  /* Cache is the vertex locations cache */
471 
472  angleOffset = startAngle / 180.0 * PI;
473  for (i = 0; i <= slices; i++) {
474  angle = angleOffset + ((PI * sweepAngle) / 180.0) * i / slices;
475  sinCache[i] = SIN(angle);
476  cosCache[i] = COS(angle);
477  }
478 
479  if (sweepAngle == 360.0) {
480  sinCache[slices] = sinCache[0];
481  cosCache[slices] = cosCache[0];
482  }
483 
484  switch(qobj->normals) {
485  case GLU_FLAT:
486  case GLU_SMOOTH:
487  if (qobj->orientation == GLU_OUTSIDE) {
488  glNormal3f(0.0, 0.0, 1.0);
489  } else {
490  glNormal3f(0.0, 0.0, -1.0);
491  }
492  break;
493  default:
494  case GLU_NONE:
495  break;
496  }
497 
498  switch (qobj->drawStyle) {
499  case GLU_FILL:
500  if (innerRadius == 0.0) {
501  finish = loops - 1;
502  /* Triangle strip for inner polygons */
504  if (qobj->textureCoords) {
505  glTexCoord2f(0.5, 0.5);
506  }
507  glVertex3f(0.0, 0.0, 0.0);
508  radiusLow = outerRadius -
509  deltaRadius * ((float) (loops-1) / loops);
510  if (qobj->textureCoords) {
511  texLow = radiusLow / outerRadius / 2;
512  }
513 
514  if (qobj->orientation == GLU_OUTSIDE) {
515  for (i = slices; i >= 0; i--) {
516  if (qobj->textureCoords) {
517  glTexCoord2f(texLow * sinCache[i] + 0.5,
518  texLow * cosCache[i] + 0.5);
519  }
520  glVertex3f(radiusLow * sinCache[i],
521  radiusLow * cosCache[i], 0.0);
522  }
523  } else {
524  for (i = 0; i <= slices; i++) {
525  if (qobj->textureCoords) {
526  glTexCoord2f(texLow * sinCache[i] + 0.5,
527  texLow * cosCache[i] + 0.5);
528  }
529  glVertex3f(radiusLow * sinCache[i],
530  radiusLow * cosCache[i], 0.0);
531  }
532  }
533  glEnd();
534  } else {
535  finish = loops;
536  }
537  for (j = 0; j < finish; j++) {
538  radiusLow = outerRadius - deltaRadius * ((float) j / loops);
539  radiusHigh = outerRadius - deltaRadius * ((float) (j + 1) / loops);
540  if (qobj->textureCoords) {
541  texLow = radiusLow / outerRadius / 2;
542  texHigh = radiusHigh / outerRadius / 2;
543  }
544 
546  for (i = 0; i <= slices; i++) {
547  if (qobj->orientation == GLU_OUTSIDE) {
548  if (qobj->textureCoords) {
549  glTexCoord2f(texLow * sinCache[i] + 0.5,
550  texLow * cosCache[i] + 0.5);
551  }
552  glVertex3f(radiusLow * sinCache[i],
553  radiusLow * cosCache[i], 0.0);
554 
555  if (qobj->textureCoords) {
556  glTexCoord2f(texHigh * sinCache[i] + 0.5,
557  texHigh * cosCache[i] + 0.5);
558  }
559  glVertex3f(radiusHigh * sinCache[i],
560  radiusHigh * cosCache[i], 0.0);
561  } else {
562  if (qobj->textureCoords) {
563  glTexCoord2f(texHigh * sinCache[i] + 0.5,
564  texHigh * cosCache[i] + 0.5);
565  }
566  glVertex3f(radiusHigh * sinCache[i],
567  radiusHigh * cosCache[i], 0.0);
568 
569  if (qobj->textureCoords) {
570  glTexCoord2f(texLow * sinCache[i] + 0.5,
571  texLow * cosCache[i] + 0.5);
572  }
573  glVertex3f(radiusLow * sinCache[i],
574  radiusLow * cosCache[i], 0.0);
575  }
576  }
577  glEnd();
578  }
579  break;
580  case GLU_POINT:
582  for (i = 0; i < slices2; i++) {
583  sintemp = sinCache[i];
584  costemp = cosCache[i];
585  for (j = 0; j <= loops; j++) {
586  radiusLow = outerRadius - deltaRadius * ((float) j / loops);
587 
588  if (qobj->textureCoords) {
589  texLow = radiusLow / outerRadius / 2;
590 
591  glTexCoord2f(texLow * sinCache[i] + 0.5,
592  texLow * cosCache[i] + 0.5);
593  }
594  glVertex3f(radiusLow * sintemp, radiusLow * costemp, 0.0);
595  }
596  }
597  glEnd();
598  break;
599  case GLU_LINE:
600  if (innerRadius == outerRadius) {
602 
603  for (i = 0; i <= slices; i++) {
604  if (qobj->textureCoords) {
605  glTexCoord2f(sinCache[i] / 2 + 0.5,
606  cosCache[i] / 2 + 0.5);
607  }
608  glVertex3f(innerRadius * sinCache[i],
609  innerRadius * cosCache[i], 0.0);
610  }
611  glEnd();
612  break;
613  }
614  for (j = 0; j <= loops; j++) {
615  radiusLow = outerRadius - deltaRadius * ((float) j / loops);
616  if (qobj->textureCoords) {
617  texLow = radiusLow / outerRadius / 2;
618  }
619 
621  for (i = 0; i <= slices; i++) {
622  if (qobj->textureCoords) {
623  glTexCoord2f(texLow * sinCache[i] + 0.5,
624  texLow * cosCache[i] + 0.5);
625  }
626  glVertex3f(radiusLow * sinCache[i],
627  radiusLow * cosCache[i], 0.0);
628  }
629  glEnd();
630  }
631  for (i=0; i < slices2; i++) {
632  sintemp = sinCache[i];
633  costemp = cosCache[i];
635  for (j = 0; j <= loops; j++) {
636  radiusLow = outerRadius - deltaRadius * ((float) j / loops);
637  if (qobj->textureCoords) {
638  texLow = radiusLow / outerRadius / 2;
639  }
640 
641  if (qobj->textureCoords) {
642  glTexCoord2f(texLow * sinCache[i] + 0.5,
643  texLow * cosCache[i] + 0.5);
644  }
645  glVertex3f(radiusLow * sintemp, radiusLow * costemp, 0.0);
646  }
647  glEnd();
648  }
649  break;
650  case GLU_SILHOUETTE:
651  if (sweepAngle < 360.0) {
652  for (i = 0; i <= slices; i+= slices) {
653  sintemp = sinCache[i];
654  costemp = cosCache[i];
656  for (j = 0; j <= loops; j++) {
657  radiusLow = outerRadius - deltaRadius * ((float) j / loops);
658 
659  if (qobj->textureCoords) {
660  texLow = radiusLow / outerRadius / 2;
661  glTexCoord2f(texLow * sinCache[i] + 0.5,
662  texLow * cosCache[i] + 0.5);
663  }
664  glVertex3f(radiusLow * sintemp, radiusLow * costemp, 0.0);
665  }
666  glEnd();
667  }
668  }
669  for (j = 0; j <= loops; j += loops) {
670  radiusLow = outerRadius - deltaRadius * ((float) j / loops);
671  if (qobj->textureCoords) {
672  texLow = radiusLow / outerRadius / 2;
673  }
674 
676  for (i = 0; i <= slices; i++) {
677  if (qobj->textureCoords) {
678  glTexCoord2f(texLow * sinCache[i] + 0.5,
679  texLow * cosCache[i] + 0.5);
680  }
681  glVertex3f(radiusLow * sinCache[i],
682  radiusLow * cosCache[i], 0.0);
683  }
684  glEnd();
685  if (innerRadius == outerRadius) break;
686  }
687  break;
688  default:
689  break;
690  }
691 }
static void gluQuadricError(GLUquadric *qobj, GLenum which)
Definition: quad.c:78
#define PI
Definition: quad.c:43
#define GL_POINTS
Definition: gl.h:190
GLAPI void GLAPIENTRY glVertex3f(GLfloat x, GLfloat y, GLfloat z)
#define GLU_FILL
Definition: glu.h:198
GLfloat angle
Definition: glext.h:10853
#define GLU_POINT
Definition: glu.h:196
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
#define CACHE_SIZE
Definition: quad.c:40
#define COS
Definition: gluint.h:43
#define SIN
Definition: gluint.h:44
#define GL_TRIANGLE_FAN
Definition: gl.h:196
GLAPI void GLAPIENTRY glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz)
#define GL_LINE_STRIP
Definition: gl.h:193
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 GLU_NONE
Definition: glu.h:207
#define GLU_LINE
Definition: glu.h:197
GLAPI void GLAPIENTRY glBegin(GLenum mode)
#define GLU_INVALID_VALUE
Definition: glu.h:89
#define GLU_SILHOUETTE
Definition: glu.h:199
#define GL_QUAD_STRIP
Definition: gl.h:198
#define GLU_SMOOTH
Definition: glu.h:205
GLAPI void GLAPIENTRY glTexCoord2f(GLfloat s, GLfloat t)
float GLfloat
Definition: gl.h:161
GLAPI void GLAPIENTRY glEnd(void)
int GLint
Definition: gl.h:156
#define GLU_FLAT
Definition: glu.h:206
#define GLU_OUTSIDE
Definition: glu.h:210

◆ gluPerspective()

GLAPI void GLAPIENTRY gluPerspective ( GLdouble  fovy,
GLdouble  aspect,
GLdouble  zNear,
GLdouble  zFar 
)

Definition at line 65 of file project.c.

66 {
67  GLdouble m[4][4];
68  double sine, cotangent, deltaZ;
69  double radians = fovy / 2 * __glPi / 180;
70 
71  deltaZ = zFar - zNear;
72  sine = sin(radians);
73  if ((deltaZ == 0) || (sine == 0) || (aspect == 0)) {
74  return;
75  }
76  cotangent = COS(radians) / sine;
77 
78  __gluMakeIdentityd(&m[0][0]);
79  m[0][0] = cotangent / aspect;
80  m[1][1] = cotangent;
81  m[2][2] = -(zFar + zNear) / deltaZ;
82  m[2][3] = -1;
83  m[3][2] = -2 * zNear * zFar / deltaZ;
84  m[3][3] = 0;
85  glMultMatrixd(&m[0][0]);
86 }
double GLdouble
Definition: gl.h:163
const GLfloat * m
Definition: glext.h:10848
GLAPI void GLAPIENTRY glMultMatrixd(const GLdouble *m)
#define COS
Definition: gluint.h:43
GLdouble zFar
Definition: glext.h:10465
#define __glPi
Definition: project.c:62
GLdouble GLdouble GLdouble GLdouble GLdouble zNear
Definition: glext.h:10859
_STLP_DECLSPEC complex< float > _STLP_CALL sin(const complex< float > &)
static void __gluMakeIdentityd(GLdouble m[16])
Definition: project.c:40

◆ gluPickMatrix()

GLAPI void GLAPIENTRY gluPickMatrix ( GLdouble  x,
GLdouble  y,
GLdouble  delX,
GLdouble  delY,
GLint viewport 
)

◆ gluProject()

GLAPI GLint GLAPIENTRY gluProject ( GLdouble  objX,
GLdouble  objY,
GLdouble  objZ,
const GLdouble model,
const GLdouble proj,
const GLint view,
GLdouble winX,
GLdouble winY,
GLdouble winZ 
)

◆ gluPwlCurve()

GLAPI void GLAPIENTRY gluPwlCurve ( GLUnurbs nurb,
GLint  count,
GLfloat data,
GLint  stride,
GLenum  type 
)

◆ gluQuadricCallback()

GLAPI void GLAPIENTRY gluQuadricCallback ( GLUquadric quad,
GLenum  which,
_GLUfuncptr  CallBackFunc 
)

Definition at line 86 of file quad.c.

87 {
88  switch (which) {
89  case GLU_ERROR:
90  qobj->errorCallback = (void (GLAPIENTRY *)(GLint)) fn;
91  break;
92  default:
94  return;
95  }
96 }
static void gluQuadricError(GLUquadric *qobj, GLenum which)
Definition: quad.c:78
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
static GLenum _GLUfuncptr fn
Definition: wgl_font.c:159
static GLenum which
Definition: wgl_font.c:159
#define GLU_ERROR
Definition: glu.h:101
#define GLU_INVALID_ENUM
Definition: glu.h:88
int GLint
Definition: gl.h:156
#define GLAPIENTRY
Definition: glu.h:44

◆ gluQuadricDrawStyle()

GLAPI void GLAPIENTRY gluQuadricDrawStyle ( GLUquadric quad,
GLenum  draw 
)

Definition at line 134 of file quad.c.

135 {
136  switch(drawStyle) {
137  case GLU_POINT:
138  case GLU_LINE:
139  case GLU_FILL:
140  case GLU_SILHOUETTE:
141  break;
142  default:
144  return;
145  }
146  qobj->drawStyle = drawStyle;
147 }
static void gluQuadricError(GLUquadric *qobj, GLenum which)
Definition: quad.c:78
#define GLU_FILL
Definition: glu.h:198
#define GLU_POINT
Definition: glu.h:196
#define GLU_LINE
Definition: glu.h:197
#define GLU_SILHOUETTE
Definition: glu.h:199
#define GLU_INVALID_ENUM
Definition: glu.h:88

◆ gluQuadricNormals()

GLAPI void GLAPIENTRY gluQuadricNormals ( GLUquadric quad,
GLenum  normal 
)

Definition at line 99 of file quad.c.

100 {
101  switch (normals) {
102  case GLU_SMOOTH:
103  case GLU_FLAT:
104  case GLU_NONE:
105  break;
106  default:
108  return;
109  }
110  qobj->normals = normals;
111 }
static void gluQuadricError(GLUquadric *qobj, GLenum which)
Definition: quad.c:78
#define GLU_NONE
Definition: glu.h:207
#define GLU_SMOOTH
Definition: glu.h:205
#define GLU_INVALID_ENUM
Definition: glu.h:88
#define GLU_FLAT
Definition: glu.h:206

◆ gluQuadricOrientation()

GLAPI void GLAPIENTRY gluQuadricOrientation ( GLUquadric quad,
GLenum  orientation 
)

Definition at line 120 of file quad.c.

121 {
122  switch(orientation) {
123  case GLU_OUTSIDE:
124  case GLU_INSIDE:
125  break;
126  default:
128  return;
129  }
130  qobj->orientation = orientation;
131 }
static void gluQuadricError(GLUquadric *qobj, GLenum which)
Definition: quad.c:78
#define GLU_INSIDE
Definition: glu.h:211
#define GLU_INVALID_ENUM
Definition: glu.h:88
#define GLU_OUTSIDE
Definition: glu.h:210

◆ gluQuadricTexture()

GLAPI void GLAPIENTRY gluQuadricTexture ( GLUquadric quad,
GLboolean  texture 
)

Definition at line 114 of file quad.c.

115 {
116  qobj->textureCoords = textureCoords;
117 }

◆ gluScaleImage()

GLAPI GLint GLAPIENTRY gluScaleImage ( GLenum  format,
GLsizei  wIn,
GLsizei  hIn,
GLenum  typeIn,
const void dataIn,
GLsizei  wOut,
GLsizei  hOut,
GLenum  typeOut,
GLvoid dataOut 
)

Definition at line 3498 of file mipmap.c.

3502 {
3503  int components;
3504  GLushort *beforeImage;
3505  GLushort *afterImage;
3506  PixelStorageModes psm;
3507 
3508  if (widthin == 0 || heightin == 0 || widthout == 0 || heightout == 0) {
3509  return 0;
3510  }
3511  if (widthin < 0 || heightin < 0 || widthout < 0 || heightout < 0) {
3512  return GLU_INVALID_VALUE;
3513  }
3514  if (!legalFormat(format) || !legalType(typein) || !legalType(typeout)) {
3515  return GLU_INVALID_ENUM;
3516  }
3517  if (!isLegalFormatForPackedPixelType(format, typein)) {
3518  return GLU_INVALID_OPERATION;
3519  }
3520  if (!isLegalFormatForPackedPixelType(format, typeout)) {
3521  return GLU_INVALID_OPERATION;
3522  }
3523  beforeImage =
3524  malloc(image_size(widthin, heightin, format, GL_UNSIGNED_SHORT));
3525  afterImage =
3526  malloc(image_size(widthout, heightout, format, GL_UNSIGNED_SHORT));
3527  if (beforeImage == NULL || afterImage == NULL) {
3528  free(beforeImage);
3529  free(afterImage);
3530  return GLU_OUT_OF_MEMORY;
3531  }
3532 
3533  retrieveStoreModes(&psm);
3534  fill_image(&psm,widthin, heightin, format, typein, is_index(format),
3535  datain, beforeImage);
3537  scale_internal(components, widthin, heightin, beforeImage,
3538  widthout, heightout, afterImage);
3539  empty_image(&psm,widthout, heightout, format, typeout,
3540  is_index(format), afterImage, dataout);
3541  free((GLbyte *) beforeImage);
3542  free((GLbyte *) afterImage);
3543 
3544  return 0;
3545 }
#define GL_UNSIGNED_SHORT
Definition: gl.h:180
#define free
Definition: debug_ros.c:5
static GLboolean legalFormat(GLenum)
Definition: mipmap.c:3286
static void retrieveStoreModes(PixelStorageModes *psm)
Definition: mipmap.c:249
#define GLU_OUT_OF_MEMORY
Definition: glu.h:90
static void scale_internal(GLint components, GLint widthin, GLint heightin, const GLushort *datain, GLint widthout, GLint heightout, GLushort *dataout)
Definition: mipmap.c:1289
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
static void fill_image(const PixelStorageModes *, GLint width, GLint height, GLenum format, GLenum type, GLboolean index_format, const void *userdata, GLushort *newimage)
Definition: mipmap.c:4876
static void empty_image(const PixelStorageModes *, GLint width, GLint height, GLenum format, GLenum type, GLboolean index_format, const GLushort *oldimage, void *userdata)
Definition: mipmap.c:5139
smooth NULL
Definition: ftsmooth.c:416
static GLint elements_per_group(GLenum format, GLenum type)
Definition: mipmap.c:4768
#define GLU_INVALID_OPERATION
Definition: glu.h:92
GLenum GLenum GLuint components
Definition: glext.h:9620
signed char GLbyte
Definition: gl.h:154
static GLboolean legalType(GLenum)
Definition: mipmap.c:3309
#define GLU_INVALID_VALUE
Definition: glu.h:89
static GLboolean isLegalFormatForPackedPixelType(GLenum, GLenum)
Definition: mipmap.c:3361
#define GLU_INVALID_ENUM
Definition: glu.h:88
#define malloc
Definition: debug_ros.c:4
static GLint is_index(GLenum format)
Definition: mipmap.c:4847
unsigned short GLushort
Definition: gl.h:158
static GLint image_size(GLint width, GLint height, GLenum format, GLenum type)
Definition: mipmap.c:4856

◆ gluSphere()

GLAPI void GLAPIENTRY gluSphere ( GLUquadric quad,
GLdouble  radius,
GLint  slices,
GLint  stacks 
)

Definition at line 694 of file quad.c.

695 {
696  GLint i,j;
697  GLfloat sinCache1a[CACHE_SIZE];
698  GLfloat cosCache1a[CACHE_SIZE];
699  GLfloat sinCache2a[CACHE_SIZE];
700  GLfloat cosCache2a[CACHE_SIZE];
701  GLfloat sinCache3a[CACHE_SIZE];
702  GLfloat cosCache3a[CACHE_SIZE];
703  GLfloat sinCache1b[CACHE_SIZE];
704  GLfloat cosCache1b[CACHE_SIZE];
705  GLfloat sinCache2b[CACHE_SIZE];
706  GLfloat cosCache2b[CACHE_SIZE];
707  GLfloat sinCache3b[CACHE_SIZE];
708  GLfloat cosCache3b[CACHE_SIZE];
709  GLfloat angle;
710  GLfloat zLow, zHigh;
711  GLfloat sintemp1 = 0.0, sintemp2 = 0.0, sintemp3 = 0.0, sintemp4 = 0.0;
712  GLfloat costemp1 = 0.0, costemp2 = 0.0, costemp3 = 0.0, costemp4 = 0.0;
713  GLboolean needCache2, needCache3;
714  GLint start, finish;
715 
716  if (slices >= CACHE_SIZE) slices = CACHE_SIZE-1;
717  if (stacks >= CACHE_SIZE) stacks = CACHE_SIZE-1;
718  if (slices < 2 || stacks < 1 || radius < 0.0) {
720  return;
721  }
722 
723  /* Cache is the vertex locations cache */
724  /* Cache2 is the various normals at the vertices themselves */
725  /* Cache3 is the various normals for the faces */
726  needCache2 = needCache3 = GL_FALSE;
727 
728  if (qobj->normals == GLU_SMOOTH) {
729  needCache2 = GL_TRUE;
730  }
731 
732  if (qobj->normals == GLU_FLAT) {
733  if (qobj->drawStyle != GLU_POINT) {
734  needCache3 = GL_TRUE;
735  }
736  if (qobj->drawStyle == GLU_LINE) {
737  needCache2 = GL_TRUE;
738  }
739  }
740 
741  for (i = 0; i < slices; i++) {
742  angle = 2 * PI * i / slices;
743  sinCache1a[i] = SIN(angle);
744  cosCache1a[i] = COS(angle);
745  if (needCache2) {
746  sinCache2a[i] = sinCache1a[i];
747  cosCache2a[i] = cosCache1a[i];
748  }
749  }
750 
751  for (j = 0; j <= stacks; j++) {
752  angle = PI * j / stacks;
753  if (needCache2) {
754  if (qobj->orientation == GLU_OUTSIDE) {
755  sinCache2b[j] = SIN(angle);
756  cosCache2b[j] = COS(angle);
757  } else {
758  sinCache2b[j] = -SIN(angle);
759  cosCache2b[j] = -COS(angle);
760  }
761  }
762  sinCache1b[j] = radius * SIN(angle);
763  cosCache1b[j] = radius * COS(angle);
764  }
765  /* Make sure it comes to a point */
766  sinCache1b[0] = 0;
767  sinCache1b[stacks] = 0;
768 
769  if (needCache3) {
770  for (i = 0; i < slices; i++) {
771  angle = 2 * PI * (i-0.5) / slices;
772  sinCache3a[i] = SIN(angle);
773  cosCache3a[i] = COS(angle);
774  }
775  for (j = 0; j <= stacks; j++) {
776  angle = PI * (j - 0.5) / stacks;
777  if (qobj->orientation == GLU_OUTSIDE) {
778  sinCache3b[j] = SIN(angle);
779  cosCache3b[j] = COS(angle);
780  } else {
781  sinCache3b[j] = -SIN(angle);
782  cosCache3b[j] = -COS(angle);
783  }
784  }
785  }
786 
787  sinCache1a[slices] = sinCache1a[0];
788  cosCache1a[slices] = cosCache1a[0];
789  if (needCache2) {
790  sinCache2a[slices] = sinCache2a[0];
791  cosCache2a[slices] = cosCache2a[0];
792  }
793  if (needCache3) {
794  sinCache3a[slices] = sinCache3a[0];
795  cosCache3a[slices] = cosCache3a[0];
796  }
797 
798  switch (qobj->drawStyle) {
799  case GLU_FILL:
800  /* Do ends of sphere as TRIANGLE_FAN's (if not texturing)
801  ** We don't do it when texturing because we need to respecify the
802  ** texture coordinates of the apex for every adjacent vertex (because
803  ** it isn't a constant for that point)
804  */
805  if (!(qobj->textureCoords)) {
806  start = 1;
807  finish = stacks - 1;
808 
809  /* Low end first (j == 0 iteration) */
810  sintemp2 = sinCache1b[1];
811  zHigh = cosCache1b[1];
812  switch(qobj->normals) {
813  case GLU_FLAT:
814  sintemp3 = sinCache3b[1];
815  costemp3 = cosCache3b[1];
816  break;
817  case GLU_SMOOTH:
818  sintemp3 = sinCache2b[1];
819  costemp3 = cosCache2b[1];
820  glNormal3f(sinCache2a[0] * sinCache2b[0],
821  cosCache2a[0] * sinCache2b[0],
822  cosCache2b[0]);
823  break;
824  default:
825  break;
826  }
828  glVertex3f(0.0, 0.0, radius);
829  if (qobj->orientation == GLU_OUTSIDE) {
830  for (i = slices; i >= 0; i--) {
831  switch(qobj->normals) {
832  case GLU_SMOOTH:
833  glNormal3f(sinCache2a[i] * sintemp3,
834  cosCache2a[i] * sintemp3,
835  costemp3);
836  break;
837  case GLU_FLAT:
838  if (i != slices) {
839  glNormal3f(sinCache3a[i+1] * sintemp3,
840  cosCache3a[i+1] * sintemp3,
841  costemp3);
842  }
843  break;
844  case GLU_NONE:
845  default:
846  break;
847  }
848  glVertex3f(sintemp2 * sinCache1a[i],
849  sintemp2 * cosCache1a[i], zHigh);
850  }
851  } else {
852  for (i = 0; i <= slices; i++) {
853  switch(qobj->normals) {
854  case GLU_SMOOTH:
855  glNormal3f(sinCache2a[i] * sintemp3,
856  cosCache2a[i] * sintemp3,
857  costemp3);
858  break;
859  case GLU_FLAT:
860  glNormal3f(sinCache3a[i] * sintemp3,
861  cosCache3a[i] * sintemp3,
862  costemp3);
863  break;
864  case GLU_NONE:
865  default:
866  break;
867  }
868  glVertex3f(sintemp2 * sinCache1a[i],
869  sintemp2 * cosCache1a[i], zHigh);
870  }
871  }
872  glEnd();
873 
874  /* High end next (j == stacks-1 iteration) */
875  sintemp2 = sinCache1b[stacks-1];
876  zHigh = cosCache1b[stacks-1];
877  switch(qobj->normals) {
878  case GLU_FLAT:
879  sintemp3 = sinCache3b[stacks];
880  costemp3 = cosCache3b[stacks];
881  break;
882  case GLU_SMOOTH:
883  sintemp3 = sinCache2b[stacks-1];
884  costemp3 = cosCache2b[stacks-1];
885  glNormal3f(sinCache2a[stacks] * sinCache2b[stacks],
886  cosCache2a[stacks] * sinCache2b[stacks],
887  cosCache2b[stacks]);
888  break;
889  default:
890  break;
891  }
893  glVertex3f(0.0, 0.0, -radius);
894  if (qobj->orientation == GLU_OUTSIDE) {
895  for (i = 0; i <= slices; i++) {
896  switch(qobj->normals) {
897  case GLU_SMOOTH:
898  glNormal3f(sinCache2a[i] * sintemp3,
899  cosCache2a[i] * sintemp3,
900  costemp3);
901  break;
902  case GLU_FLAT:
903  glNormal3f(sinCache3a[i] * sintemp3,
904  cosCache3a[i] * sintemp3,
905  costemp3);
906  break;
907  case GLU_NONE:
908  default:
909  break;
910  }
911  glVertex3f(sintemp2 * sinCache1a[i],
912  sintemp2 * cosCache1a[i], zHigh);
913  }
914  } else {
915  for (i = slices; i >= 0; i--) {
916  switch(qobj->normals) {
917  case GLU_SMOOTH:
918  glNormal3f(sinCache2a[i] * sintemp3,
919  cosCache2a[i] * sintemp3,
920  costemp3);
921  break;
922  case GLU_FLAT:
923  if (i != slices) {
924  glNormal3f(sinCache3a[i+1] * sintemp3,
925  cosCache3a[i+1] * sintemp3,
926  costemp3);
927  }
928  break;
929  case GLU_NONE:
930  default:
931  break;
932  }
933  glVertex3f(sintemp2 * sinCache1a[i],
934  sintemp2 * cosCache1a[i], zHigh);
935  }
936  }
937  glEnd();
938  } else {
939  start = 0;
940  finish = stacks;
941  }
942  for (j = start; j < finish; j++) {
943  zLow = cosCache1b[j];
944  zHigh = cosCache1b[j+1];
945  sintemp1 = sinCache1b[j];
946  sintemp2 = sinCache1b[j+1];
947  switch(qobj->normals) {
948  case GLU_FLAT:
949  sintemp4 = sinCache3b[j+1];
950  costemp4 = cosCache3b[j+1];
951  break;
952  case GLU_SMOOTH:
953  if (qobj->orientation == GLU_OUTSIDE) {
954  sintemp3 = sinCache2b[j+1];
955  costemp3 = cosCache2b[j+1];
956  sintemp4 = sinCache2b[j];
957  costemp4 = cosCache2b[j];
958  } else {
959  sintemp3 = sinCache2b[j];
960  costemp3 = cosCache2b[j];
961  sintemp4 = sinCache2b[j+1];
962  costemp4 = cosCache2b[j+1];
963  }
964  break;
965  default:
966  break;
967  }
968 
970  for (i = 0; i <= slices; i++) {
971  switch(qobj->normals) {
972  case GLU_SMOOTH:
973  glNormal3f(sinCache2a[i] * sintemp3,
974  cosCache2a[i] * sintemp3,
975  costemp3);
976  break;
977  case GLU_FLAT:
978  case GLU_NONE:
979  default:
980  break;
981  }
982  if (qobj->orientation == GLU_OUTSIDE) {
983  if (qobj->textureCoords) {
984  glTexCoord2f(1 - (float) i / slices,
985  1 - (float) (j+1) / stacks);
986  }
987  glVertex3f(sintemp2 * sinCache1a[i],
988  sintemp2 * cosCache1a[i], zHigh);
989  } else {
990  if (qobj->textureCoords) {
991  glTexCoord2f(1 - (float) i / slices,
992  1 - (float) j / stacks);
993  }
994  glVertex3f(sintemp1 * sinCache1a[i],
995  sintemp1 * cosCache1a[i], zLow);
996  }
997  switch(qobj->normals) {
998  case GLU_SMOOTH:
999  glNormal3f(sinCache2a[i] * sintemp4,
1000  cosCache2a[i] * sintemp4,
1001  costemp4);
1002  break;
1003  case GLU_FLAT:
1004  glNormal3f(sinCache3a[i] * sintemp4,
1005  cosCache3a[i] * sintemp4,
1006  costemp4);
1007  break;
1008  case GLU_NONE:
1009  default:
1010  break;
1011  }
1012  if (qobj->orientation == GLU_OUTSIDE) {
1013  if (qobj->textureCoords) {
1014  glTexCoord2f(1 - (float) i / slices,
1015  1 - (float) j / stacks);
1016  }
1017  glVertex3f(sintemp1 * sinCache1a[i],
1018  sintemp1 * cosCache1a[i], zLow);
1019  } else {
1020  if (qobj->textureCoords) {
1021  glTexCoord2f(1 - (float) i / slices,
1022  1 - (float) (j+1) / stacks);
1023  }
1024  glVertex3f(sintemp2 * sinCache1a[i],
1025  sintemp2 * cosCache1a[i], zHigh);
1026  }
1027  }
1028  glEnd();
1029  }
1030  break;
1031  case GLU_POINT:
1032  glBegin(GL_POINTS);
1033  for (j = 0; j <= stacks; j++) {
1034  sintemp1 = sinCache1b[j];
1035  costemp1 = cosCache1b[j];
1036  switch(qobj->normals) {
1037  case GLU_FLAT:
1038  case GLU_SMOOTH:
1039  sintemp2 = sinCache2b[j];
1040  costemp2 = cosCache2b[j];
1041  break;
1042  default:
1043  break;
1044  }
1045  for (i = 0; i < slices; i++) {
1046  switch(qobj->normals) {
1047  case GLU_FLAT:
1048  case GLU_SMOOTH:
1049  glNormal3f(sinCache2a[i] * sintemp2,
1050  cosCache2a[i] * sintemp2,
1051  costemp2);
1052  break;
1053  case GLU_NONE:
1054  default:
1055  break;
1056  }
1057 
1058  zLow = j * radius / stacks;
1059 
1060  if (qobj->textureCoords) {
1061  glTexCoord2f(1 - (float) i / slices,
1062  1 - (float) j / stacks);
1063  }
1064  glVertex3f(sintemp1 * sinCache1a[i],
1065  sintemp1 * cosCache1a[i], costemp1);
1066  }
1067  }
1068  glEnd();
1069  break;
1070  case GLU_LINE:
1071  case GLU_SILHOUETTE:
1072  for (j = 1; j < stacks; j++) {
1073  sintemp1 = sinCache1b[j];
1074  costemp1 = cosCache1b[j];
1075  switch(qobj->normals) {
1076  case GLU_FLAT:
1077  case GLU_SMOOTH:
1078  sintemp2 = sinCache2b[j];
1079  costemp2 = cosCache2b[j];
1080  break;
1081  default:
1082  break;
1083  }
1084 
1086  for (i = 0; i <= slices; i++) {
1087  switch(qobj->normals) {
1088  case GLU_FLAT:
1089  glNormal3f(sinCache3a[i] * sintemp2,
1090  cosCache3a[i] * sintemp2,
1091  costemp2);
1092  break;
1093  case GLU_SMOOTH:
1094  glNormal3f(sinCache2a[i] * sintemp2,
1095  cosCache2a[i] * sintemp2,
1096  costemp2);
1097  break;
1098  case GLU_NONE:
1099  default:
1100  break;
1101  }
1102  if (qobj->textureCoords) {
1103  glTexCoord2f(1 - (float) i / slices,
1104  1 - (float) j / stacks);
1105  }
1106  glVertex3f(sintemp1 * sinCache1a[i],
1107  sintemp1 * cosCache1a[i], costemp1);
1108  }
1109  glEnd();
1110  }
1111  for (i = 0; i < slices; i++) {
1112  sintemp1 = sinCache1a[i];
1113  costemp1 = cosCache1a[i];
1114  switch(qobj->normals) {
1115  case GLU_FLAT:
1116  case GLU_SMOOTH:
1117  sintemp2 = sinCache2a[i];
1118  costemp2 = cosCache2a[i];
1119  break;
1120  default:
1121  break;
1122  }
1123 
1125  for (j = 0; j <= stacks; j++) {
1126  switch(qobj->normals) {
1127  case GLU_FLAT:
1128  glNormal3f(sintemp2 * sinCache3b[j],
1129  costemp2 * sinCache3b[j],
1130  cosCache3b[j]);
1131  break;
1132  case GLU_SMOOTH:
1133  glNormal3f(sintemp2 * sinCache2b[j],
1134  costemp2 * sinCache2b[j],
1135  cosCache2b[j]);
1136  break;
1137  case GLU_NONE:
1138  default:
1139  break;
1140  }
1141 
1142  if (qobj->textureCoords) {
1143  glTexCoord2f(1 - (float) i / slices,
1144  1 - (float) j / stacks);
1145  }
1146  glVertex3f(sintemp1 * sinCache1b[j],
1147  costemp1 * sinCache1b[j], cosCache1b[j]);
1148  }
1149  glEnd();
1150  }
1151  break;
1152  default:
1153  break;
1154  }
1155 }
static void gluQuadricError(GLUquadric *qobj, GLenum which)
Definition: quad.c:78
#define PI
Definition: quad.c:43
#define GL_POINTS
Definition: gl.h:190
GLAPI void GLAPIENTRY glVertex3f(GLfloat x, GLfloat y, GLfloat z)
#define GL_FALSE
Definition: gl.h:173
#define GLU_FILL
Definition: glu.h:198
GLfloat angle
Definition: glext.h:10853
#define GLU_POINT
Definition: glu.h:196
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
#define CACHE_SIZE
Definition: quad.c:40
unsigned char GLboolean
Definition: gl.h:151
#define COS
Definition: gluint.h:43
#define SIN
Definition: gluint.h:44
#define GL_TRIANGLE_FAN
Definition: gl.h:196
GLAPI void GLAPIENTRY glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz)
#define GL_LINE_STRIP
Definition: gl.h:193
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 GLU_NONE
Definition: glu.h:207
#define GLU_LINE
Definition: glu.h:197
GLAPI void GLAPIENTRY glBegin(GLenum mode)
#define GLU_INVALID_VALUE
Definition: glu.h:89
#define GLU_SILHOUETTE
Definition: glu.h:199
#define GL_QUAD_STRIP
Definition: gl.h:198
#define GLU_SMOOTH
Definition: glu.h:205
GLuint start
Definition: gl.h:1545
#define GL_TRUE
Definition: gl.h:174
GLAPI void GLAPIENTRY glTexCoord2f(GLfloat s, GLfloat t)
float GLfloat
Definition: gl.h:161
GLAPI void GLAPIENTRY glEnd(void)
int GLint
Definition: gl.h:156
#define GLU_FLAT
Definition: glu.h:206
#define GLU_OUTSIDE
Definition: glu.h:210

◆ gluTessBeginContour()

GLAPI void GLAPIENTRY gluTessBeginContour ( GLUtesselator tess)

Definition at line 476 of file tess.c.

477 {
478  RequireState( tess, T_IN_POLYGON );
479 
480  tess->state = T_IN_CONTOUR;
481  tess->lastEdge = NULL;
482  if( tess->cacheCount > 0 ) {
483  /* Just set a flag so we don't get confused by empty contours
484  * -- these can be generated accidentally with the obsolete
485  * NextContour() interface.
486  */
487  tess->emptyCache = TRUE;
488  }
489 }
enum TessState state
Definition: tess.h:63
GLboolean emptyCache
Definition: tess.h:106
smooth NULL
Definition: ftsmooth.c:416
#define TRUE
Definition: tess.c:51
GLUhalfEdge * lastEdge
Definition: tess.h:65
int cacheCount
Definition: tess.h:107
#define RequireState(tess, s)
Definition: tess.c:152

◆ gluTessBeginPolygon()

GLAPI void GLAPIENTRY gluTessBeginPolygon ( GLUtesselator tess,
GLvoid data 
)

Definition at line 462 of file tess.c.

463 {
464  RequireState( tess, T_DORMANT );
465 
466  tess->state = T_IN_POLYGON;
467  tess->cacheCount = 0;
468  tess->emptyCache = FALSE;
469  tess->mesh = NULL;
470 
471  tess->polygonData= data;
472 }
enum TessState state
Definition: tess.h:63
GLboolean emptyCache
Definition: tess.h:106
smooth NULL
Definition: ftsmooth.c:416
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLUmesh * mesh
Definition: tess.h:66
void * polygonData
Definition: tess.h:111
Definition: tess.h:47
int cacheCount
Definition: tess.h:107
#define RequireState(tess, s)
Definition: tess.c:152
#define FALSE
Definition: tess.c:54

◆ gluTessCallback()

GLAPI void GLAPIENTRY gluTessCallback ( GLUtesselator tess,
GLenum  which,
_GLUfuncptr  CallBackFunc 
)

Definition at line 276 of file tess.c.

277 {
278  switch( which ) {
279  case GLU_TESS_BEGIN:
280  tess->callBegin = (fn == NULL) ? &noBegin : (void (GLAPIENTRY *)(GLenum)) fn;
281  return;
282  case GLU_TESS_BEGIN_DATA:
283  tess->callBeginData = (fn == NULL) ?
284  &__gl_noBeginData : (void (GLAPIENTRY *)(GLenum, void *)) fn;
285  return;
286  case GLU_TESS_EDGE_FLAG:
287  tess->callEdgeFlag = (fn == NULL) ? &noEdgeFlag :
288  (void (GLAPIENTRY *)(GLboolean)) fn;
289  /* If the client wants boundary edges to be flagged,
290  * we render everything as separate triangles (no strips or fans).
291  */
292  tess->flagBoundary = (fn != NULL);
293  return;
295  tess->callEdgeFlagData= (fn == NULL) ?
296  &__gl_noEdgeFlagData : (void (GLAPIENTRY *)(GLboolean, void *)) fn;
297  /* If the client wants boundary edges to be flagged,
298  * we render everything as separate triangles (no strips or fans).
299  */
300  tess->flagBoundary = (fn != NULL);
301  return;
302  case GLU_TESS_VERTEX:
303  tess->callVertex = (fn == NULL) ? &noVertex :
304  (void (GLAPIENTRY *)(void *)) fn;
305  return;
307  tess->callVertexData = (fn == NULL) ?
308  &__gl_noVertexData : (void (GLAPIENTRY *)(void *, void *)) fn;
309  return;
310  case GLU_TESS_END:
311  tess->callEnd = (fn == NULL) ? &noEnd : (void (GLAPIENTRY *)(void)) fn;
312  return;
313  case GLU_TESS_END_DATA:
314  tess->callEndData = (fn == NULL) ? &__gl_noEndData :
315  (void (GLAPIENTRY *)(void *)) fn;
316  return;
317  case GLU_TESS_ERROR:
318  tess->callError = (fn == NULL) ? &noError : (void (GLAPIENTRY *)(GLenum)) fn;
319  return;
320  case GLU_TESS_ERROR_DATA:
321  tess->callErrorData = (fn == NULL) ?
322  &__gl_noErrorData : (void (GLAPIENTRY *)(GLenum, void *)) fn;
323  return;
324  case GLU_TESS_COMBINE:
325  tess->callCombine = (fn == NULL) ? &noCombine :
326  (void (GLAPIENTRY *)(GLdouble [3],void *[4], GLfloat [4], void ** )) fn;
327  return;
329  tess->callCombineData = (fn == NULL) ? &__gl_noCombineData :
330  (void (GLAPIENTRY *)(GLdouble [3],
331  void *[4],
332  GLfloat [4],
333  void **,
334  void *)) fn;
335  return;
336  case GLU_TESS_MESH:
337  tess->callMesh = (fn == NULL) ? &noMesh : (void (GLAPIENTRY *)(GLUmesh *)) fn;
338  return;
339  default:
341  return;
342  }
343 }
double GLdouble
Definition: gl.h:163
GLboolean flagBoundary
Definition: tess.h:92
void GLAPIENTRY __gl_noEndData(void *polygonData)
Definition: tess.c:73
Definition: mesh.h:163
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
static void GLAPIENTRY noEdgeFlag(GLboolean boundaryEdge)
Definition: tess.c:58
#define GLU_TESS_END_DATA
Definition: glu.h:226
static GLenum _GLUfuncptr fn
Definition: wgl_font.c:159
static void GLAPIENTRY noVertex(void *data)
Definition: tess.c:59
static GLenum which
Definition: wgl_font.c:159
#define CALL_ERROR_OR_ERROR_DATA(a)
Definition: tess.h:160
void GLAPIENTRY __gl_noVertexData(void *data, void *polygonData)
Definition: tess.c:71
void GLAPIENTRY __gl_noCombineData(GLdouble coords[3], void *data[4], GLfloat weight[4], void **outData, void *polygonData)
Definition: tess.c:76
static void GLAPIENTRY noEnd(void)
Definition: tess.c:60
#define GLU_TESS_COMBINE
Definition: glu.h:223
unsigned char GLboolean
Definition: gl.h:151
void GLAPIENTRY __gl_noEdgeFlagData(GLboolean boundaryEdge, void *polygonData)
Definition: tess.c:69
smooth NULL
Definition: ftsmooth.c:416
static void GLAPIENTRY noError(GLenum errnum)
Definition: tess.c:61
static void GLAPIENTRY noMesh(GLUmesh *mesh)
Definition: tess.c:64
void GLAPIENTRY __gl_noErrorData(GLenum errnum, void *polygonData)
Definition: tess.c:74
#define GLU_TESS_VERTEX_DATA
Definition: glu.h:225
#define GLU_TESS_BEGIN_DATA
Definition: glu.h:224
#define GLU_TESS_ERROR_DATA
Definition: glu.h:227
unsigned int GLenum
Definition: gl.h:150
#define GLU_TESS_END
Definition: glu.h:218
static void GLAPIENTRY noBegin(GLenum type)
Definition: tess.c:57
#define GLU_TESS_COMBINE_DATA
Definition: glu.h:229
#define GLU_TESS_ERROR
Definition: glu.h:220
static void GLAPIENTRY noCombine(GLdouble coords[3], void *data[4], GLfloat weight[4], void **dataOut)
Definition: tess.c:62
void GLAPIENTRY __gl_noBeginData(GLenum type, void *polygonData)
Definition: tess.c:67
float GLfloat
Definition: gl.h:161
#define GLU_INVALID_ENUM
Definition: glu.h:88
#define GLU_TESS_BEGIN
Definition: glu.h:214
#define GLU_TESS_EDGE_FLAG_DATA
Definition: glu.h:228
#define GLU_TESS_MESH
Definition: tess.c:48
#define GLU_TESS_EDGE_FLAG
Definition: glu.h:221
#define GLU_TESS_VERTEX
Definition: glu.h:216
#define GLAPIENTRY
Definition: glu.h:44

◆ gluTessEndContour()

GLAPI void GLAPIENTRY gluTessEndContour ( GLUtesselator tess)

Definition at line 493 of file tess.c.

494 {
495  RequireState( tess, T_IN_CONTOUR );
496  tess->state = T_IN_POLYGON;
497 }
enum TessState state
Definition: tess.h:63
#define RequireState(tess, s)
Definition: tess.c:152

◆ gluTessEndPolygon()

GLAPI void GLAPIENTRY gluTessEndPolygon ( GLUtesselator tess)

Definition at line 500 of file tess.c.

501 {
502  GLUmesh *mesh;
503 
504  if (setjmp(tess->env) != 0) {
505  /* come back here if out of memory */
507  return;
508  }
509 
510  RequireState( tess, T_IN_POLYGON );
511  tess->state = T_DORMANT;
512 
513  if( tess->mesh == NULL ) {
514  if( ! tess->flagBoundary && tess->callMesh == &noMesh ) {
515 
516  /* Try some special code to make the easy cases go quickly
517  * (eg. convex polygons). This code does NOT handle multiple contours,
518  * intersections, edge flags, and of course it does not generate
519  * an explicit mesh either.
520  */
521  if( __gl_renderCache( tess )) {
522  tess->polygonData= NULL;
523  return;
524  }
525  }
526  if ( !EmptyCache( tess ) ) longjmp(tess->env,1); /* could've used a label*/
527  }
528 
529  /* Determine the polygon normal and project vertices onto the plane
530  * of the polygon.
531  */
532  __gl_projectPolygon( tess );
533 
534  /* __gl_computeInterior( tess ) computes the planar arrangement specified
535  * by the given contours, and further subdivides this arrangement
536  * into regions. Each region is marked "inside" if it belongs
537  * to the polygon, according to the rule given by tess->windingRule.
538  * Each interior region is guaranteed be monotone.
539  */
540  if ( !__gl_computeInterior( tess ) ) {
541  longjmp(tess->env,1); /* could've used a label */
542  }
543 
544  mesh = tess->mesh;
545  if( ! tess->fatalError ) {
546  int rc = 1;
547 
548  /* If the user wants only the boundary contours, we throw away all edges
549  * except those which separate the interior from the exterior.
550  * Otherwise we tessellate all the regions marked "inside".
551  */
552  if( tess->boundaryOnly ) {
553  rc = __gl_meshSetWindingNumber( mesh, 1, TRUE );
554  } else {
555  rc = __gl_meshTessellateInterior( mesh );
556  }
557  if (rc == 0) longjmp(tess->env,1); /* could've used a label */
558 
559  __gl_meshCheckMesh( mesh );
560 
561  if( tess->callBegin != &noBegin || tess->callEnd != &noEnd
562  || tess->callVertex != &noVertex || tess->callEdgeFlag != &noEdgeFlag
563  || tess->callBeginData != &__gl_noBeginData
564  || tess->callEndData != &__gl_noEndData
565  || tess->callVertexData != &__gl_noVertexData
566  || tess->callEdgeFlagData != &__gl_noEdgeFlagData )
567  {
568  if( tess->boundaryOnly ) {
569  __gl_renderBoundary( tess, mesh ); /* output boundary contours */
570  } else {
571  __gl_renderMesh( tess, mesh ); /* output strips and fans */
572  }
573  }
574  if( tess->callMesh != &noMesh ) {
575 
576  /* Throw away the exterior faces, so that all faces are interior.
577  * This way the user doesn't have to check the "inside" flag,
578  * and we don't need to even reveal its existence. It also leaves
579  * the freedom for an implementation to not generate the exterior
580  * faces in the first place.
581  */
582  __gl_meshDiscardExterior( mesh );
583  (*tess->callMesh)( mesh ); /* user wants the mesh itself */
584  tess->mesh = NULL;
585  tess->polygonData= NULL;
586  return;
587  }
588  }
589  __gl_meshDeleteMesh( mesh );
590  tess->polygonData= NULL;
591  tess->mesh = NULL;
592 }
GLboolean flagBoundary
Definition: tess.h:92
void GLAPIENTRY __gl_noEndData(void *polygonData)
Definition: tess.c:73
Definition: mesh.h:163
static void GLAPIENTRY noEdgeFlag(GLboolean boundaryEdge)
Definition: tess.c:58
static void GLAPIENTRY noVertex(void *data)
Definition: tess.c:59
int __gl_computeInterior(GLUtesselator *tess)
Definition: sweep.c:1301
GLboolean __gl_renderCache(GLUtesselator *tess)
Definition: render.c:441
#define CALL_ERROR_OR_ERROR_DATA(a)
Definition: tess.h:160
void GLAPIENTRY __gl_noVertexData(void *data, void *polygonData)
Definition: tess.c:71
enum TessState state
Definition: tess.h:63
#define GLU_OUT_OF_MEMORY
Definition: glu.h:90
void __gl_renderMesh(GLUtesselator *tess, GLUmesh *mesh)
Definition: render.c:82
static void GLAPIENTRY noEnd(void)
Definition: tess.c:60
void __gl_meshDiscardExterior(GLUmesh *mesh)
Definition: tessmono.c:155
void GLAPIENTRY __gl_noEdgeFlagData(GLboolean boundaryEdge, void *polygonData)
Definition: tess.c:69
GLboolean boundaryOnly
Definition: tess.h:93
smooth NULL
Definition: ftsmooth.c:416
jmp_buf env
Definition: tess.h:121
int longjmp(jmp_buf buf, int retval)
GLboolean fatalError
Definition: tess.h:81
static void GLAPIENTRY noMesh(GLUmesh *mesh)
Definition: tess.c:64
int __gl_meshTessellateInterior(GLUmesh *mesh)
Definition: tessmono.c:133
void __gl_meshCheckMesh(GLUmesh *mesh)
Definition: mesh.c:742
#define TRUE
Definition: tess.c:51
GLUmesh * mesh
Definition: tess.h:66
static int EmptyCache(GLUtesselator *tess)
Definition: tess.c:396
static void GLAPIENTRY noBegin(GLenum type)
Definition: tess.c:57
#define setjmp
Definition: setjmp.h:183
void __gl_projectPolygon(GLUtesselator *tess)
Definition: normal.c:198
int __gl_meshSetWindingNumber(GLUmesh *mesh, int value, GLboolean keepOnlyBoundary)
Definition: tessmono.c:179
void GLAPIENTRY __gl_noBeginData(GLenum type, void *polygonData)
Definition: tess.c:67
void __gl_renderBoundary(GLUtesselator *tess, GLUmesh *mesh)
Definition: render.c:339
void * polygonData
Definition: tess.h:111
Definition: tess.h:47
#define RequireState(tess, s)
Definition: tess.c:152
void __gl_meshDeleteMesh(GLUmesh *mesh)
Definition: mesh.c:711

◆ gluTessNormal()

GLAPI void GLAPIENTRY gluTessNormal ( GLUtesselator tess,
GLdouble  valueX,
GLdouble  valueY,
GLdouble  valueZ 
)

Definition at line 268 of file tess.c.

269 {
270  tess->normal[0] = x;
271  tess->normal[1] = y;
272  tess->normal[2] = z;
273 }
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLdouble normal[3]
Definition: tess.h:73
GLdouble GLdouble z
Definition: glext.h:5874
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548

◆ gluTessProperty()

GLAPI void GLAPIENTRY gluTessProperty ( GLUtesselator tess,
GLenum  which,
GLdouble  data 
)

Definition at line 201 of file tess.c.

202 {
203  GLenum windingRule;
204 
205  switch( which ) {
206  case GLU_TESS_TOLERANCE:
207  if( value < 0.0 || value > 1.0 ) break;
208  tess->relTolerance = value;
209  return;
210 
212  windingRule = (GLenum) value;
213  if( windingRule != value ) break; /* not an integer */
214 
215  switch( windingRule ) {
221  tess->windingRule = windingRule;
222  return;
223  default:
224  break;
225  }
226 
228  tess->boundaryOnly = (value != 0);
229  return;
230 
231  default:
233  return;
234  }
236 }
#define GLU_TESS_BOUNDARY_ONLY
Definition: glu.h:240
static GLenum which
Definition: wgl_font.c:159
#define CALL_ERROR_OR_ERROR_DATA(a)
Definition: tess.h:160
GLboolean boundaryOnly
Definition: tess.h:93
#define GLU_TESS_WINDING_POSITIVE
Definition: glu.h:262
GLenum windingRule
Definition: tess.h:80
unsigned int GLenum
Definition: gl.h:150
GLsizei const GLfloat * value
Definition: glext.h:6069
#define GLU_INVALID_VALUE
Definition: glu.h:89
#define GLU_TESS_WINDING_ODD
Definition: glu.h:260
#define GLU_TESS_WINDING_RULE
Definition: glu.h:239
#define GLU_INVALID_ENUM
Definition: glu.h:88
#define GLU_TESS_WINDING_NEGATIVE
Definition: glu.h:263
#define GLU_TESS_TOLERANCE
Definition: glu.h:241
#define GLU_TESS_WINDING_ABS_GEQ_TWO
Definition: glu.h:264
#define GLU_TESS_WINDING_NONZERO
Definition: glu.h:261
GLdouble relTolerance
Definition: tess.h:79

◆ gluTessVertex()

GLAPI void GLAPIENTRY gluTessVertex ( GLUtesselator tess,
GLdouble location,
GLvoid data 
)

◆ gluUnProject()

GLAPI GLint GLAPIENTRY gluUnProject ( GLdouble  winX,
GLdouble  winY,
GLdouble  winZ,
const GLdouble model,
const GLdouble proj,
const GLint view,
GLdouble objX,
GLdouble objY,
GLdouble objZ 
)

◆ gluUnProject4()

GLAPI GLint GLAPIENTRY gluUnProject4 ( GLdouble  winX,
GLdouble  winY,
GLdouble  winZ,
GLdouble  clipW,
const GLdouble model,
const