Compare commits

..

No commits in common. "master" and "patch-1" have entirely different histories.

4 changed files with 8492 additions and 8449 deletions

View file

@ -28,12 +28,12 @@ else:
dllname = "libGLU.so.1" dllname = "libGLU.so.1"
type type
ViewPortArray* = array[0..3, GLint] TViewPortArray* = array[0..3, TGLint]
c16dArray* = array[0..15, GLdouble] T16dArray* = array[0..15, TGLdouble]
CallBack* = proc () TCallBack* = proc ()
c3dArray* = array[0..2, GLdouble] T3dArray* = array[0..2, TGLdouble]
c4pArray* = array[0..3, pointer] T4pArray* = array[0..3, pointer]
c4fArray* = array[0..3, GLfloat] T4fArray* = array[0..3, TGLfloat]
type type
GLUnurbs*{.final.} = object GLUnurbs*{.final.} = object
@ -50,255 +50,286 @@ type
PGLUtesselatorObj* = PGLUtesselator PGLUtesselatorObj* = PGLUtesselator
GLUtriangulatorObj* = GLUtesselator GLUtriangulatorObj* = GLUtesselator
PGLUtriangulatorObj* = PGLUtesselator PGLUtriangulatorObj* = PGLUtesselator
TGLUnurbs* = GLUnurbs
TGLUquadric* = GLUquadric
TGLUtesselator* = GLUtesselator
TGLUnurbsObj* = GLUnurbsObj
TGLUquadricObj* = GLUquadricObj
TGLUtesselatorObj* = GLUtesselatorObj
TGLUtriangulatorObj* = GLUtriangulatorObj
{.deprecated: [TGLUnurbs: GLUnurbs, proc gluErrorString*(errCode: TGLenum): cstring{.dynlib: dllname,
TGLUquadric: GLUquadric, importc: "gluErrorString".}
TGLUtesselator: GLUtesselator,
TGLUnurbsObj: GLUnurbsObj,
TGLUquadricObj: GLUquadricObj,
TGLUtesselatorObj: GLUtesselatorObj,
TGLUtriangulatorObj: GLUtriangulatorObj,
TViewPortArray: ViewPortArray,
T16dArray: c16dArray,
TCallback: Callback,
T3dArray: c3dArray,
T4pArray: c4pArray,
T4fArray: c4fArray].}
{.push dynlib: dllname, importc: "glu$1".}
proc ErrorString*(errCode: GLenum): cstring
when defined(Windows): when defined(Windows):
proc ErrorUnicodeStringEXT*(errCode: GLenum): ptr int16 proc gluErrorUnicodeStringEXT*(errCode: TGLenum): ptr int16{.dynlib: dllname,
proc GetString*(name: GLenum): cstring importc: "gluErrorUnicodeStringEXT".}
proc Ortho2D*(left, right, bottom, top: GLdouble) proc gluGetString*(name: TGLenum): cstring{.dynlib: dllname,
proc Perspective*(fovy, aspect, zNear, zFar: GLdouble) importc: "gluGetString".}
proc PickMatrix*(x, y, width, height: GLdouble, viewport: var ViewPortArray) proc gluOrtho2D*(left, right, bottom, top: TGLdouble){.dynlib: dllname,
proc LookAt*(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: GLdouble) importc: "gluOrtho2D".}
proc Project*(objx, objy, objz: GLdouble, proc gluPerspective*(fovy, aspect, zNear, zFar: TGLdouble){.dynlib: dllname,
modelMatrix, projMatrix: var c16dArray, importc: "gluPerspective".}
viewport: var ViewPortArray, winx, winy, winz: ptr GLdouble): int proc gluPickMatrix*(x, y, width, height: TGLdouble, viewport: var TViewPortArray){.
proc UnProject*(winx, winy, winz: GLdouble, dynlib: dllname, importc: "gluPickMatrix".}
modelMatrix, projMatrix: var c16dArray, proc gluLookAt*(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: TGLdouble){.
viewport: var ViewPortArray, objx, objy, objz: ptr GLdouble): int dynlib: dllname, importc: "gluLookAt".}
proc ScaleImage*(format: GLenum, widthin, heightin: GLint, typein: GLenum, proc gluProject*(objx, objy, objz: TGLdouble,
datain: pointer, widthout, heightout: GLint, modelMatrix, projMatrix: var T16dArray,
typeout: GLenum, dataout: pointer): int viewport: var TViewPortArray, winx, winy, winz: ptr TGLdouble): int{.
proc Build1DMipmaps*(target: GLenum, components, width: GLint, dynlib: dllname, importc: "gluProject".}
format, atype: GLenum, data: pointer): int proc gluUnProject*(winx, winy, winz: TGLdouble,
proc Build2DMipmaps*(target: GLenum, components, width, height: GLint, modelMatrix, projMatrix: var T16dArray,
format, atype: GLenum, data: pointer): int viewport: var TViewPortArray, objx, objy, objz: ptr TGLdouble): int{.
proc NewQuadric*(): PGLUquadric dynlib: dllname, importc: "gluUnProject".}
proc DeleteQuadric*(state: PGLUquadric) proc gluScaleImage*(format: TGLenum, widthin, heightin: TGLint, typein: TGLenum,
proc QuadricNormals*(quadObject: PGLUquadric, normals: GLenum) datain: pointer, widthout, heightout: TGLint,
proc QuadricTexture*(quadObject: PGLUquadric, textureCoords: GLboolean) typeout: TGLenum, dataout: pointer): int{.dynlib: dllname,
proc QuadricOrientation*(quadObject: PGLUquadric, orientation: GLenum) importc: "gluScaleImage".}
proc QuadricDrawStyle*(quadObject: PGLUquadric, drawStyle: GLenum) proc gluBuild1DMipmaps*(target: TGLenum, components, width: TGLint,
proc Cylinder*(qobj: PGLUquadric, baseRadius, topRadius, height: GLdouble, format, atype: TGLenum, data: pointer): int{.
slices, stacks: GLint) dynlib: dllname, importc: "gluBuild1DMipmaps".}
proc Disk*(qobj: PGLUquadric, innerRadius, outerRadius: GLdouble, proc gluBuild2DMipmaps*(target: TGLenum, components, width, height: TGLint,
slices, loops: GLint) format, atype: TGLenum, data: pointer): int{.
proc PartialDisk*(qobj: PGLUquadric, innerRadius, outerRadius: GLdouble, dynlib: dllname, importc: "gluBuild2DMipmaps".}
slices, loops: GLint, startAngle, sweepAngle: GLdouble) proc gluNewQuadric*(): PGLUquadric{.dynlib: dllname, importc: "gluNewQuadric".}
proc Sphere*(qobj: PGLuquadric, radius: GLdouble, slices, stacks: GLint) proc gluDeleteQuadric*(state: PGLUquadric){.dynlib: dllname,
proc QuadricCallback*(qobj: PGLUquadric, which: GLenum, fn: Callback) importc: "gluDeleteQuadric".}
proc NewTess*(): PGLUtesselator proc gluQuadricNormals*(quadObject: PGLUquadric, normals: TGLenum){.
proc DeleteTess*(tess: PGLUtesselator) dynlib: dllname, importc: "gluQuadricNormals".}
proc TessBeginPolygon*(tess: PGLUtesselator, polygon_data: pointer) proc gluQuadricTexture*(quadObject: PGLUquadric, textureCoords: TGLboolean){.
proc TessBeginContour*(tess: PGLUtesselator) dynlib: dllname, importc: "gluQuadricTexture".}
proc TessVertex*(tess: PGLUtesselator, coords: var c3dArray, data: pointer) proc gluQuadricOrientation*(quadObject: PGLUquadric, orientation: TGLenum){.
proc TessEndContour*(tess: PGLUtesselator) dynlib: dllname, importc: "gluQuadricOrientation".}
proc TessEndPolygon*(tess: PGLUtesselator) proc gluQuadricDrawStyle*(quadObject: PGLUquadric, drawStyle: TGLenum){.
proc TessProperty*(tess: PGLUtesselator, which: GLenum, value: GLdouble) dynlib: dllname, importc: "gluQuadricDrawStyle".}
proc TessNormal*(tess: PGLUtesselator, x, y, z: GLdouble) proc gluCylinder*(qobj: PGLUquadric, baseRadius, topRadius, height: TGLdouble,
proc TessCallback*(tess: PGLUtesselator, which: GLenum, fn: Callback) slices, stacks: TGLint){.dynlib: dllname,
proc GetTessProperty*(tess: PGLUtesselator, which: GLenum, value: ptr GLdouble) importc: "gluCylinder".}
proc NewNurbsRenderer*(): PGLUnurbs proc gluDisk*(qobj: PGLUquadric, innerRadius, outerRadius: TGLdouble,
proc DeleteNurbsRenderer*(nobj: PGLUnurbs) slices, loops: TGLint){.dynlib: dllname, importc: "gluDisk".}
proc BeginSurface*(nobj: PGLUnurbs) proc gluPartialDisk*(qobj: PGLUquadric, innerRadius, outerRadius: TGLdouble,
proc BeginCurve*(nobj: PGLUnurbs) slices, loops: TGLint, startAngle, sweepAngle: TGLdouble){.
proc EndCurve*(nobj: PGLUnurbs) dynlib: dllname, importc: "gluPartialDisk".}
proc EndSurface*(nobj: PGLUnurbs) proc gluSphere*(qobj: PGLuquadric, radius: TGLdouble, slices, stacks: TGLint){.
proc BeginTrim*(nobj: PGLUnurbs) dynlib: dllname, importc: "gluSphere".}
proc EndTrim*(nobj: PGLUnurbs) proc gluQuadricCallback*(qobj: PGLUquadric, which: TGLenum, fn: TCallBack){.
proc PwlCurve*(nobj: PGLUnurbs, count: GLint, aarray: ptr GLfloat, dynlib: dllname, importc: "gluQuadricCallback".}
stride: GLint, atype: GLenum) proc gluNewTess*(): PGLUtesselator{.dynlib: dllname, importc: "gluNewTess".}
proc NurbsCurve*(nobj: PGLUnurbs, nknots: GLint, knot: ptr GLfloat, proc gluDeleteTess*(tess: PGLUtesselator){.dynlib: dllname,
stride: GLint, ctlarray: ptr GLfloat, order: GLint, importc: "gluDeleteTess".}
atype: GLenum) proc gluTessBeginPolygon*(tess: PGLUtesselator, polygon_data: pointer){.
proc NurbsSurface*(nobj: PGLUnurbs, sknot_count: GLint, sknot: ptr GLfloat, dynlib: dllname, importc: "gluTessBeginPolygon".}
tknot_count: GLint, tknot: ptr GLfloat, proc gluTessBeginContour*(tess: PGLUtesselator){.dynlib: dllname,
s_stride, t_stride: GLint, ctlarray: ptr GLfloat, importc: "gluTessBeginContour".}
sorder, torder: GLint, atype: GLenum) proc gluTessVertex*(tess: PGLUtesselator, coords: var T3dArray, data: pointer){.
proc LoadSamplingMatrices*(nobj: PGLUnurbs, dynlib: dllname, importc: "gluTessVertex".}
modelMatrix, projMatrix: var c16dArray, proc gluTessEndContour*(tess: PGLUtesselator){.dynlib: dllname,
viewport: var ViewPortArray) importc: "gluTessEndContour".}
proc NurbsProperty*(nobj: PGLUnurbs, aproperty: GLenum, value: GLfloat) proc gluTessEndPolygon*(tess: PGLUtesselator){.dynlib: dllname,
proc GetNurbsProperty*(nobj: PGLUnurbs, aproperty: GLenum, value: ptr GLfloat) importc: "gluTessEndPolygon".}
proc NurbsCallback*(nobj: PGLUnurbs, which: GLenum, fn: Callback) proc gluTessProperty*(tess: PGLUtesselator, which: TGLenum, value: TGLdouble){.
dynlib: dllname, importc: "gluTessProperty".}
proc gluTessNormal*(tess: PGLUtesselator, x, y, z: TGLdouble){.dynlib: dllname,
importc: "gluTessNormal".}
proc gluTessCallback*(tess: PGLUtesselator, which: TGLenum, fn: TCallBack){.
dynlib: dllname, importc: "gluTessCallback".}
proc gluGetTessProperty*(tess: PGLUtesselator, which: TGLenum, value: ptr TGLdouble){.
dynlib: dllname, importc: "gluGetTessProperty".}
proc gluNewNurbsRenderer*(): PGLUnurbs{.dynlib: dllname,
importc: "gluNewNurbsRenderer".}
proc gluDeleteNurbsRenderer*(nobj: PGLUnurbs){.dynlib: dllname,
importc: "gluDeleteNurbsRenderer".}
proc gluBeginSurface*(nobj: PGLUnurbs){.dynlib: dllname,
importc: "gluBeginSurface".}
proc gluBeginCurve*(nobj: PGLUnurbs){.dynlib: dllname, importc: "gluBeginCurve".}
proc gluEndCurve*(nobj: PGLUnurbs){.dynlib: dllname, importc: "gluEndCurve".}
proc gluEndSurface*(nobj: PGLUnurbs){.dynlib: dllname, importc: "gluEndSurface".}
proc gluBeginTrim*(nobj: PGLUnurbs){.dynlib: dllname, importc: "gluBeginTrim".}
proc gluEndTrim*(nobj: PGLUnurbs){.dynlib: dllname, importc: "gluEndTrim".}
proc gluPwlCurve*(nobj: PGLUnurbs, count: TGLint, aarray: ptr TGLfloat,
stride: TGLint, atype: TGLenum){.dynlib: dllname,
importc: "gluPwlCurve".}
proc gluNurbsCurve*(nobj: PGLUnurbs, nknots: TGLint, knot: ptr TGLfloat,
stride: TGLint, ctlarray: ptr TGLfloat, order: TGLint,
atype: TGLenum){.dynlib: dllname, importc: "gluNurbsCurve".}
proc gluNurbsSurface*(nobj: PGLUnurbs, sknot_count: TGLint, sknot: ptr TGLfloat,
tknot_count: TGLint, tknot: ptr TGLfloat,
s_stride, t_stride: TGLint, ctlarray: ptr TGLfloat,
sorder, torder: TGLint, atype: TGLenum){.dynlib: dllname,
importc: "gluNurbsSurface".}
proc gluLoadSamplingMatrices*(nobj: PGLUnurbs,
modelMatrix, projMatrix: var T16dArray,
viewport: var TViewPortArray){.dynlib: dllname,
importc: "gluLoadSamplingMatrices".}
proc gluNurbsProperty*(nobj: PGLUnurbs, aproperty: TGLenum, value: TGLfloat){.
dynlib: dllname, importc: "gluNurbsProperty".}
proc gluGetNurbsProperty*(nobj: PGLUnurbs, aproperty: TGLenum, value: ptr TGLfloat){.
dynlib: dllname, importc: "gluGetNurbsProperty".}
proc gluNurbsCallback*(nobj: PGLUnurbs, which: TGLenum, fn: TCallBack){.
dynlib: dllname, importc: "gluNurbsCallback".}
#*** Callback function prototypes *** #*** Callback function prototypes ***
type # gluQuadricCallback type # gluQuadricCallback
GLUquadricErrorProc* = proc (p: GLenum) # gluTessCallback GLUquadricErrorProc* = proc (p: TGLenum) # gluTessCallback
GLUtessBeginProc* = proc (p: GLenum) GLUtessBeginProc* = proc (p: TGLenum)
GLUtessEdgeFlagProc* = proc (p: GLboolean) GLUtessEdgeFlagProc* = proc (p: TGLboolean)
GLUtessVertexProc* = proc (p: pointer) GLUtessVertexProc* = proc (p: pointer)
GLUtessEndProc* = proc () GLUtessEndProc* = proc ()
GLUtessErrorProc* = proc (p: GLenum) GLUtessErrorProc* = proc (p: TGLenum)
GLUtessCombineProc* = proc (p1: var c3dArray, p2: c4pArray, p3: c4fArray, GLUtessCombineProc* = proc (p1: var T3dArray, p2: T4pArray, p3: T4fArray,
p4: ptr pointer) p4: ptr pointer)
GLUtessBeginDataProc* = proc (p1: GLenum, p2: pointer) GLUtessBeginDataProc* = proc (p1: TGLenum, p2: pointer)
GLUtessEdgeFlagDataProc* = proc (p1: GLboolean, p2: pointer) GLUtessEdgeFlagDataProc* = proc (p1: TGLboolean, p2: pointer)
GLUtessVertexDataProc* = proc (p1, p2: pointer) GLUtessVertexDataProc* = proc (p1, p2: pointer)
GLUtessEndDataProc* = proc (p: pointer) GLUtessEndDataProc* = proc (p: pointer)
GLUtessErrorDataProc* = proc (p1: GLenum, p2: pointer) GLUtessErrorDataProc* = proc (p1: TGLenum, p2: pointer)
GLUtessCombineDataProc* = proc (p1: var c3dArray, p2: var c4pArray, GLUtessCombineDataProc* = proc (p1: var T3dArray, p2: var T4pArray,
p3: var c4fArray, p4: ptr pointer, p5: pointer) # p3: var T4fArray, p4: ptr pointer, p5: pointer) #
GLUnurbsErrorProc* = proc (p: GLenum) #*** Generic constants ****/ GLUnurbsErrorProc* = proc (p: TGLenum) #*** Generic constants ****/
const # Version const # Version
VERSION_1_1* = 1 GLU_VERSION_1_1* = 1
VERSION_1_2* = 1 # Errors: (return value 0 = no error) GLU_VERSION_1_2* = 1 # Errors: (return value 0 = no error)
INVALID_ENUM* = 100900 GLU_INVALID_ENUM* = 100900
INVALID_VALUE* = 100901 GLU_INVALID_VALUE* = 100901
OUT_OF_MEMORY* = 100902 GLU_OUT_OF_MEMORY* = 100902
INCOMPATIBLE_GL_VERSION* = 100903 # StringName GLU_INCOMPATIBLE_GL_VERSION* = 100903 # StringName
VERSION* = 100800 GLU_VERSION* = 100800
EXTENSIONS* = 100801 # Boolean GLU_EXTENSIONS* = 100801 # Boolean
TRUE* = opengl.TRUE GLU_TRUE* = GL_TRUE
FALSE* = opengl.FALSE #*** Quadric constants ****/ GLU_FALSE* = GL_FALSE #*** Quadric constants ****/
# QuadricNormal # QuadricNormal
SMOOTH* = 100000 GLU_SMOOTH* = 100000
FLAT* = 100001 GLU_FLAT* = 100001
NONE* = 100002 # QuadricDrawStyle GLU_NONE* = 100002 # QuadricDrawStyle
POINT* = 100010 GLU_POINT* = 100010
LINE* = 100011 GLU_LINE* = 100011
FILL* = 100012 GLU_FILL* = 100012
SILHOUETTE* = 100013 # QuadricOrientation GLU_SILHOUETTE* = 100013 # QuadricOrientation
OUTSIDE* = 100020 GLU_OUTSIDE* = 100020
INSIDE* = 100021 # Callback types: GLU_INSIDE* = 100021 # Callback types:
# ERROR = 100103; # GLU_ERROR = 100103;
#*** Tesselation constants ****/ #*** Tesselation constants ****/
TESS_MAX_COORD* = 1.00000e+150 # TessProperty GLU_TESS_MAX_COORD* = 1.00000e+150 # TessProperty
TESS_WINDING_RULE* = 100140 GLU_TESS_WINDING_RULE* = 100140
TESS_BOUNDARY_ONLY* = 100141 GLU_TESS_BOUNDARY_ONLY* = 100141
TESS_TOLERANCE* = 100142 # TessWinding GLU_TESS_TOLERANCE* = 100142 # TessWinding
TESS_WINDING_ODD* = 100130 GLU_TESS_WINDING_ODD* = 100130
TESS_WINDING_NONZERO* = 100131 GLU_TESS_WINDING_NONZERO* = 100131
TESS_WINDING_POSITIVE* = 100132 GLU_TESS_WINDING_POSITIVE* = 100132
TESS_WINDING_NEGATIVE* = 100133 GLU_TESS_WINDING_NEGATIVE* = 100133
TESS_WINDING_ABS_GEQ_TWO* = 100134 # TessCallback GLU_TESS_WINDING_ABS_GEQ_TWO* = 100134 # TessCallback
TESS_BEGIN* = 100100 # void (CALLBACK*)(GLenum type) GLU_TESS_BEGIN* = 100100 # void (CALLBACK*)(TGLenum type)
constTESS_VERTEX* = 100101 # void (CALLBACK*)(void *data) constGLU_TESS_VERTEX* = 100101 # void (CALLBACK*)(void *data)
TESS_END* = 100102 # void (CALLBACK*)(void) GLU_TESS_END* = 100102 # void (CALLBACK*)(void)
TESS_ERROR* = 100103 # void (CALLBACK*)(GLenum errno) GLU_TESS_ERROR* = 100103 # void (CALLBACK*)(TGLenum errno)
TESS_EDGE_FLAG* = 100104 # void (CALLBACK*)(GLboolean boundaryEdge) GLU_TESS_EDGE_FLAG* = 100104 # void (CALLBACK*)(TGLboolean boundaryEdge)
TESS_COMBINE* = 100105 # void (CALLBACK*)(GLdouble coords[3], GLU_TESS_COMBINE* = 100105 # void (CALLBACK*)(TGLdouble coords[3],
# void *data[4], # void *data[4],
# GLfloat weight[4], # TGLfloat weight[4],
# void **dataOut) # void **dataOut)
TESS_BEGIN_DATA* = 100106 # void (CALLBACK*)(GLenum type, GLU_TESS_BEGIN_DATA* = 100106 # void (CALLBACK*)(TGLenum type,
# void *polygon_data) # void *polygon_data)
TESS_VERTEX_DATA* = 100107 # void (CALLBACK*)(void *data, GLU_TESS_VERTEX_DATA* = 100107 # void (CALLBACK*)(void *data,
# void *polygon_data) # void *polygon_data)
TESS_END_DATA* = 100108 # void (CALLBACK*)(void *polygon_data) GLU_TESS_END_DATA* = 100108 # void (CALLBACK*)(void *polygon_data)
TESS_ERROR_DATA* = 100109 # void (CALLBACK*)(GLenum errno, GLU_TESS_ERROR_DATA* = 100109 # void (CALLBACK*)(TGLenum errno,
# void *polygon_data) # void *polygon_data)
TESS_EDGE_FLAG_DATA* = 100110 # void (CALLBACK*)(GLboolean boundaryEdge, GLU_TESS_EDGE_FLAG_DATA* = 100110 # void (CALLBACK*)(TGLboolean boundaryEdge,
# void *polygon_data) # void *polygon_data)
TESS_COMBINE_DATA* = 100111 # void (CALLBACK*)(GLdouble coords[3], GLU_TESS_COMBINE_DATA* = 100111 # void (CALLBACK*)(TGLdouble coords[3],
# void *data[4], # void *data[4],
# GLfloat weight[4], # TGLfloat weight[4],
# void **dataOut, # void **dataOut,
# void *polygon_data) # void *polygon_data)
# TessError # TessError
TESS_ERROR1* = 100151 GLU_TESS_ERROR1* = 100151
TESS_ERROR2* = 100152 GLU_TESS_ERROR2* = 100152
TESS_ERROR3* = 100153 GLU_TESS_ERROR3* = 100153
TESS_ERROR4* = 100154 GLU_TESS_ERROR4* = 100154
TESS_ERROR5* = 100155 GLU_TESS_ERROR5* = 100155
TESS_ERROR6* = 100156 GLU_TESS_ERROR6* = 100156
TESS_ERROR7* = 100157 GLU_TESS_ERROR7* = 100157
TESS_ERROR8* = 100158 GLU_TESS_ERROR8* = 100158
TESS_MISSING_BEGIN_POLYGON* = TESS_ERROR1 GLU_TESS_MISSING_BEGIN_POLYGON* = GLU_TESS_ERROR1
TESS_MISSING_BEGIN_CONTOUR* = TESS_ERROR2 GLU_TESS_MISSING_BEGIN_CONTOUR* = GLU_TESS_ERROR2
TESS_MISSING_END_POLYGON* = TESS_ERROR3 GLU_TESS_MISSING_END_POLYGON* = GLU_TESS_ERROR3
TESS_MISSING_END_CONTOUR* = TESS_ERROR4 GLU_TESS_MISSING_END_CONTOUR* = GLU_TESS_ERROR4
TESS_COORD_TOO_LARGE* = TESS_ERROR5 GLU_TESS_COORD_TOO_LARGE* = GLU_TESS_ERROR5
TESS_NEED_COMBINE_CALLBACK* = TESS_ERROR6 #*** NURBS constants ****/ GLU_TESS_NEED_COMBINE_CALLBACK* = GLU_TESS_ERROR6 #*** NURBS constants ****/
# NurbsProperty # NurbsProperty
AUTO_LOAD_MATRIX* = 100200 GLU_AUTO_LOAD_MATRIX* = 100200
CULLING* = 100201 GLU_CULLING* = 100201
SAMPLING_TOLERANCE* = 100203 GLU_SAMPLING_TOLERANCE* = 100203
DISPLAY_MODE* = 100204 GLU_DISPLAY_MODE* = 100204
PARAMETRIC_TOLERANCE* = 100202 GLU_PARAMETRIC_TOLERANCE* = 100202
SAMPLING_METHOD* = 100205 GLU_SAMPLING_METHOD* = 100205
U_STEP* = 100206 GLU_U_STEP* = 100206
V_STEP* = 100207 # NurbsSampling GLU_V_STEP* = 100207 # NurbsSampling
PATH_LENGTH* = 100215 GLU_PATH_LENGTH* = 100215
PARAMETRIC_ERROR* = 100216 GLU_PARAMETRIC_ERROR* = 100216
DOMAIN_DISTANCE* = 100217 # NurbsTrim GLU_DOMAIN_DISTANCE* = 100217 # NurbsTrim
MAP1_TRIM_2* = 100210 GLU_MAP1_TRIM_2* = 100210
MAP1_TRIM_3* = 100211 # NurbsDisplay GLU_MAP1_TRIM_3* = 100211 # NurbsDisplay
# FILL = 100012; # GLU_FILL = 100012;
OUTLINE_POLYGON* = 100240 GLU_OUTLINE_POLYGON* = 100240
OUTLINE_PATCH* = 100241 # NurbsCallback GLU_OUTLINE_PATCH* = 100241 # NurbsCallback
# ERROR = 100103; # GLU_ERROR = 100103;
# NurbsErrors # NurbsErrors
NURBS_ERROR1* = 100251 GLU_NURBS_ERROR1* = 100251
NURBS_ERROR2* = 100252 GLU_NURBS_ERROR2* = 100252
NURBS_ERROR3* = 100253 GLU_NURBS_ERROR3* = 100253
NURBS_ERROR4* = 100254 GLU_NURBS_ERROR4* = 100254
NURBS_ERROR5* = 100255 GLU_NURBS_ERROR5* = 100255
NURBS_ERROR6* = 100256 GLU_NURBS_ERROR6* = 100256
NURBS_ERROR7* = 100257 GLU_NURBS_ERROR7* = 100257
NURBS_ERROR8* = 100258 GLU_NURBS_ERROR8* = 100258
NURBS_ERROR9* = 100259 GLU_NURBS_ERROR9* = 100259
NURBS_ERROR10* = 100260 GLU_NURBS_ERROR10* = 100260
NURBS_ERROR11* = 100261 GLU_NURBS_ERROR11* = 100261
NURBS_ERROR12* = 100262 GLU_NURBS_ERROR12* = 100262
NURBS_ERROR13* = 100263 GLU_NURBS_ERROR13* = 100263
NURBS_ERROR14* = 100264 GLU_NURBS_ERROR14* = 100264
NURBS_ERROR15* = 100265 GLU_NURBS_ERROR15* = 100265
NURBS_ERROR16* = 100266 GLU_NURBS_ERROR16* = 100266
NURBS_ERROR17* = 100267 GLU_NURBS_ERROR17* = 100267
NURBS_ERROR18* = 100268 GLU_NURBS_ERROR18* = 100268
NURBS_ERROR19* = 100269 GLU_NURBS_ERROR19* = 100269
NURBS_ERROR20* = 100270 GLU_NURBS_ERROR20* = 100270
NURBS_ERROR21* = 100271 GLU_NURBS_ERROR21* = 100271
NURBS_ERROR22* = 100272 GLU_NURBS_ERROR22* = 100272
NURBS_ERROR23* = 100273 GLU_NURBS_ERROR23* = 100273
NURBS_ERROR24* = 100274 GLU_NURBS_ERROR24* = 100274
NURBS_ERROR25* = 100275 GLU_NURBS_ERROR25* = 100275
NURBS_ERROR26* = 100276 GLU_NURBS_ERROR26* = 100276
NURBS_ERROR27* = 100277 GLU_NURBS_ERROR27* = 100277
NURBS_ERROR28* = 100278 GLU_NURBS_ERROR28* = 100278
NURBS_ERROR29* = 100279 GLU_NURBS_ERROR29* = 100279
NURBS_ERROR30* = 100280 GLU_NURBS_ERROR30* = 100280
NURBS_ERROR31* = 100281 GLU_NURBS_ERROR31* = 100281
NURBS_ERROR32* = 100282 GLU_NURBS_ERROR32* = 100282
NURBS_ERROR33* = 100283 GLU_NURBS_ERROR33* = 100283
NURBS_ERROR34* = 100284 GLU_NURBS_ERROR34* = 100284
NURBS_ERROR35* = 100285 GLU_NURBS_ERROR35* = 100285
NURBS_ERROR36* = 100286 GLU_NURBS_ERROR36* = 100286
NURBS_ERROR37* = 100287 #*** Backwards compatibility for old tesselator ****/ GLU_NURBS_ERROR37* = 100287 #*** Backwards compatibility for old tesselator ****/
proc BeginPolygon*(tess: PGLUtesselator)
proc NextContour*(tess: PGLUtesselator, atype: GLenum)
proc EndPolygon*(tess: PGLUtesselator)
{.pop.}
proc gluBeginPolygon*(tess: PGLUtesselator){.dynlib: dllname,
importc: "gluBeginPolygon".}
proc gluNextContour*(tess: PGLUtesselator, atype: TGLenum){.dynlib: dllname,
importc: "gluNextContour".}
proc gluEndPolygon*(tess: PGLUtesselator){.dynlib: dllname,
importc: "gluEndPolygon".}
const # Contours types -- obsolete! const # Contours types -- obsolete!
CW* = 100120 GLU_CW* = 100120
CCW* = 100121 GLU_CCW* = 100121
INTERIOR* = 100122 GLU_INTERIOR* = 100122
EXTERIOR* = 100123 GLU_EXTERIOR* = 100123
UNKNOWN* = 100124 # Names without "TESS_" prefix GLU_UNKNOWN* = 100124 # Names without "TESS_" prefix
BEGIN* = TESS_BEGIN GLU_BEGIN* = GLU_TESS_BEGIN
VERTEX* = constTESS_VERTEX GLU_VERTEX* = constGLU_TESS_VERTEX
END* = TESS_END GLU_END* = GLU_TESS_END
ERROR* = TESS_ERROR GLU_ERROR* = GLU_TESS_ERROR
EDGE_FLAG* = TESS_EDGE_FLAG GLU_EDGE_FLAG* = GLU_TESS_EDGE_FLAG
{.pop.} {.pop.}
# implementation # implementation

View file

@ -29,353 +29,345 @@ else:
const const
dllname = "libglut.so.3" dllname = "libglut.so.3"
type type
VoidCallback* = proc (){.cdecl.} TGlutVoidCallback* = proc (){.cdecl.}
OneIntCallback* = proc (value: cint){.cdecl.} TGlut1IntCallback* = proc (value: cint){.cdecl.}
TwoIntCallback* = proc (v1, v2: cint){.cdecl.} TGlut2IntCallback* = proc (v1, v2: cint){.cdecl.}
ThreeIntCallback* = proc (v1, v2, v3: cint){.cdecl.} TGlut3IntCallback* = proc (v1, v2, v3: cint){.cdecl.}
FourIntCallback* = proc (v1, v2, v3, v4: cint){.cdecl.} TGlut4IntCallback* = proc (v1, v2, v3, v4: cint){.cdecl.}
OneCharTwoIntCallback* = proc (c: int8, v1, v2: cint){.cdecl.} TGlut1Char2IntCallback* = proc (c: int8, v1, v2: cint){.cdecl.}
OneUIntThreeIntCallback* = proc (u, v1, v2, v3: cint){.cdecl.} TGlut1UInt3IntCallback* = proc (u, v1, v2, v3: cint){.cdecl.}
{.deprecated: [Pointer: pointer, {.deprecated: [Pointer: pointer].}
TGlutVoidCallback: VoidCallback,
TGlut1IntCallback: OneIntCallback,
TGlut2IntCallback: TwoIntCallback,
TGlut3IntCallback: ThreeIntCallback,
TGlut4IntCallback: FourIntCallback,
TGlut1Char2IntCallback: OneCharTwoIntCallback,
TGlut1UInt3IntCallback: OneUIntThreeIntCallback
].}
const const
API_VERSION* = 3 GLUT_API_VERSION* = 3
XLIB_IMPLEMENTATION* = 12 # Display mode bit masks. GLUT_XLIB_IMPLEMENTATION* = 12 # Display mode bit masks.
RGB* = 0 GLUT_RGB* = 0
RGBA* = RGB GLUT_RGBA* = GLUT_RGB
INDEX* = 1 GLUT_INDEX* = 1
SINGLE* = 0 GLUT_SINGLE* = 0
DOUBLE* = 2 GLUT_DOUBLE* = 2
ACCUM* = 4 GLUT_ACCUM* = 4
ALPHA* = 8 GLUT_ALPHA* = 8
DEPTH* = 16 GLUT_DEPTH* = 16
STENCIL* = 32 GLUT_STENCIL* = 32
MULTISAMPLE* = 128 GLUT_MULTISAMPLE* = 128
STEREO* = 256 GLUT_STEREO* = 256
LUMINANCE* = 512 # Mouse buttons. GLUT_LUMINANCE* = 512 # Mouse buttons.
LEFT_BUTTON* = 0 GLUT_LEFT_BUTTON* = 0
MIDDLE_BUTTON* = 1 GLUT_MIDDLE_BUTTON* = 1
RIGHT_BUTTON* = 2 # Mouse button state. GLUT_RIGHT_BUTTON* = 2 # Mouse button state.
DOWN* = 0 GLUT_DOWN* = 0
UP* = 1 # function keys GLUT_UP* = 1 # function keys
KEY_F1* = 1 GLUT_KEY_F1* = 1
KEY_F2* = 2 GLUT_KEY_F2* = 2
KEY_F3* = 3 GLUT_KEY_F3* = 3
KEY_F4* = 4 GLUT_KEY_F4* = 4
KEY_F5* = 5 GLUT_KEY_F5* = 5
KEY_F6* = 6 GLUT_KEY_F6* = 6
KEY_F7* = 7 GLUT_KEY_F7* = 7
KEY_F8* = 8 GLUT_KEY_F8* = 8
KEY_F9* = 9 GLUT_KEY_F9* = 9
KEY_F10* = 10 GLUT_KEY_F10* = 10
KEY_F11* = 11 GLUT_KEY_F11* = 11
KEY_F12* = 12 # directional keys GLUT_KEY_F12* = 12 # directional keys
KEY_LEFT* = 100 GLUT_KEY_LEFT* = 100
KEY_UP* = 101 GLUT_KEY_UP* = 101
KEY_RIGHT* = 102 GLUT_KEY_RIGHT* = 102
KEY_DOWN* = 103 GLUT_KEY_DOWN* = 103
KEY_PAGE_UP* = 104 GLUT_KEY_PAGE_UP* = 104
KEY_PAGE_DOWN* = 105 GLUT_KEY_PAGE_DOWN* = 105
KEY_HOME* = 106 GLUT_KEY_HOME* = 106
KEY_END* = 107 GLUT_KEY_END* = 107
KEY_INSERT* = 108 # Entry/exit state. GLUT_KEY_INSERT* = 108 # Entry/exit state.
LEFT* = 0 GLUT_LEFT* = 0
ENTERED* = 1 # Menu usage state. GLUT_ENTERED* = 1 # Menu usage state.
MENU_NOT_IN_USE* = 0 GLUT_MENU_NOT_IN_USE* = 0
MENU_IN_USE* = 1 # Visibility state. GLUT_MENU_IN_USE* = 1 # Visibility state.
NOT_VISIBLE* = 0 GLUT_NOT_VISIBLE* = 0
VISIBLE* = 1 # Window status state. GLUT_VISIBLE* = 1 # Window status state.
HIDDEN* = 0 GLUT_HIDDEN* = 0
FULLY_RETAINED* = 1 GLUT_FULLY_RETAINED* = 1
PARTIALLY_RETAINED* = 2 GLUT_PARTIALLY_RETAINED* = 2
FULLY_COVERED* = 3 # Color index component selection values. GLUT_FULLY_COVERED* = 3 # Color index component selection values.
RED* = 0 GLUT_RED* = 0
GREEN* = 1 GLUT_GREEN* = 1
BLUE* = 2 # Layers for use. GLUT_BLUE* = 2 # Layers for use.
NORMAL* = 0 GLUT_NORMAL* = 0
OVERLAY* = 1 GLUT_OVERLAY* = 1
when defined(Windows): when defined(Windows):
const # Stroke font constants (use these in GLUT program). const # Stroke font constants (use these in GLUT program).
STROKE_ROMAN* = cast[pointer](0) GLUT_STROKE_ROMAN* = cast[Pointer](0)
STROKE_MONO_ROMAN* = cast[pointer](1) # Bitmap font constants (use these in GLUT program). GLUT_STROKE_MONO_ROMAN* = cast[Pointer](1) # Bitmap font constants (use these in GLUT program).
BITMAP_9_BY_15* = cast[pointer](2) GLUT_BITMAP_9_BY_15* = cast[Pointer](2)
BITMAP_8_BY_13* = cast[pointer](3) GLUT_BITMAP_8_BY_13* = cast[Pointer](3)
BITMAP_TIMES_ROMAN_10* = cast[pointer](4) GLUT_BITMAP_TIMES_ROMAN_10* = cast[Pointer](4)
BITMAP_TIMES_ROMAN_24* = cast[pointer](5) GLUT_BITMAP_TIMES_ROMAN_24* = cast[Pointer](5)
BITMAP_HELVETICA_10* = cast[pointer](6) GLUT_BITMAP_HELVETICA_10* = cast[Pointer](6)
BITMAP_HELVETICA_12* = cast[pointer](7) GLUT_BITMAP_HELVETICA_12* = cast[Pointer](7)
BITMAP_HELVETICA_18* = cast[pointer](8) GLUT_BITMAP_HELVETICA_18* = cast[Pointer](8)
else: else:
var # Stroke font constants (use these in GLUT program). var # Stroke font constants (use these in GLUT program).
STROKE_ROMAN*: pointer GLUT_STROKE_ROMAN*: Pointer
STROKE_MONO_ROMAN*: pointer # Bitmap font constants (use these in GLUT program). GLUT_STROKE_MONO_ROMAN*: Pointer # Bitmap font constants (use these in GLUT program).
BITMAP_9_BY_15*: pointer GLUT_BITMAP_9_BY_15*: Pointer
BITMAP_8_BY_13*: pointer GLUT_BITMAP_8_BY_13*: Pointer
BITMAP_TIMES_ROMAN_10*: pointer GLUT_BITMAP_TIMES_ROMAN_10*: Pointer
BITMAP_TIMES_ROMAN_24*: pointer GLUT_BITMAP_TIMES_ROMAN_24*: Pointer
BITMAP_HELVETICA_10*: pointer GLUT_BITMAP_HELVETICA_10*: Pointer
BITMAP_HELVETICA_12*: pointer GLUT_BITMAP_HELVETICA_12*: Pointer
BITMAP_HELVETICA_18*: pointer GLUT_BITMAP_HELVETICA_18*: Pointer
const # glutGet parameters. const # glutGet parameters.
WINDOW_X* = 100 GLUT_WINDOW_X* = 100
WINDOW_Y* = 101 GLUT_WINDOW_Y* = 101
WINDOW_WIDTH* = 102 GLUT_WINDOW_WIDTH* = 102
WINDOW_HEIGHT* = 103 GLUT_WINDOW_HEIGHT* = 103
WINDOW_BUFFER_SIZE* = 104 GLUT_WINDOW_BUFFER_SIZE* = 104
WINDOW_STENCIL_SIZE* = 105 GLUT_WINDOW_STENCIL_SIZE* = 105
WINDOW_DEPTH_SIZE* = 106 GLUT_WINDOW_DEPTH_SIZE* = 106
WINDOW_RED_SIZE* = 107 GLUT_WINDOW_RED_SIZE* = 107
WINDOW_GREEN_SIZE* = 108 GLUT_WINDOW_GREEN_SIZE* = 108
WINDOW_BLUE_SIZE* = 109 GLUT_WINDOW_BLUE_SIZE* = 109
WINDOW_ALPHA_SIZE* = 110 GLUT_WINDOW_ALPHA_SIZE* = 110
WINDOW_ACCUM_RED_SIZE* = 111 GLUT_WINDOW_ACCUM_RED_SIZE* = 111
WINDOW_ACCUM_GREEN_SIZE* = 112 GLUT_WINDOW_ACCUM_GREEN_SIZE* = 112
WINDOW_ACCUM_BLUE_SIZE* = 113 GLUT_WINDOW_ACCUM_BLUE_SIZE* = 113
WINDOW_ACCUM_ALPHA_SIZE* = 114 GLUT_WINDOW_ACCUM_ALPHA_SIZE* = 114
WINDOW_DOUBLEBUFFER* = 115 GLUT_WINDOW_DOUBLEBUFFER* = 115
WINDOW_RGBA* = 116 GLUT_WINDOW_RGBA* = 116
WINDOW_PARENT* = 117 GLUT_WINDOW_PARENT* = 117
WINDOW_NUM_CHILDREN* = 118 GLUT_WINDOW_NUM_CHILDREN* = 118
WINDOW_COLORMAP_SIZE* = 119 GLUT_WINDOW_COLORMAP_SIZE* = 119
WINDOW_NUM_SAMPLES* = 120 GLUT_WINDOW_NUM_SAMPLES* = 120
WINDOW_STEREO* = 121 GLUT_WINDOW_STEREO* = 121
WINDOW_CURSOR* = 122 GLUT_WINDOW_CURSOR* = 122
SCREEN_WIDTH* = 200 GLUT_SCREEN_WIDTH* = 200
SCREEN_HEIGHT* = 201 GLUT_SCREEN_HEIGHT* = 201
SCREEN_WIDTH_MM* = 202 GLUT_SCREEN_WIDTH_MM* = 202
SCREEN_HEIGHT_MM* = 203 GLUT_SCREEN_HEIGHT_MM* = 203
MENU_NUM_ITEMS* = 300 GLUT_MENU_NUM_ITEMS* = 300
DISPLAY_MODE_POSSIBLE* = 400 GLUT_DISPLAY_MODE_POSSIBLE* = 400
INIT_WINDOW_X* = 500 GLUT_INIT_WINDOW_X* = 500
INIT_WINDOW_Y* = 501 GLUT_INIT_WINDOW_Y* = 501
INIT_WINDOW_WIDTH* = 502 GLUT_INIT_WINDOW_WIDTH* = 502
INIT_WINDOW_HEIGHT* = 503 GLUT_INIT_WINDOW_HEIGHT* = 503
constINIT_DISPLAY_MODE* = 504 constGLUT_INIT_DISPLAY_MODE* = 504
ELAPSED_TIME* = 700 GLUT_ELAPSED_TIME* = 700
WINDOW_FORMAT_ID* = 123 # glutDeviceGet parameters. GLUT_WINDOW_FORMAT_ID* = 123 # glutDeviceGet parameters.
HAS_KEYBOARD* = 600 GLUT_HAS_KEYBOARD* = 600
HAS_MOUSE* = 601 GLUT_HAS_MOUSE* = 601
HAS_SPACEBALL* = 602 GLUT_HAS_SPACEBALL* = 602
HAS_DIAL_AND_BUTTON_BOX* = 603 GLUT_HAS_DIAL_AND_BUTTON_BOX* = 603
HAS_TABLET* = 604 GLUT_HAS_TABLET* = 604
NUM_MOUSE_BUTTONS* = 605 GLUT_NUM_MOUSE_BUTTONS* = 605
NUM_SPACEBALL_BUTTONS* = 606 GLUT_NUM_SPACEBALL_BUTTONS* = 606
NUM_BUTTON_BOX_BUTTONS* = 607 GLUT_NUM_BUTTON_BOX_BUTTONS* = 607
NUM_DIALS* = 608 GLUT_NUM_DIALS* = 608
NUM_TABLET_BUTTONS* = 609 GLUT_NUM_TABLET_BUTTONS* = 609
DEVICE_IGNORE_KEY_REPEAT* = 610 GLUT_DEVICE_IGNORE_KEY_REPEAT* = 610
DEVICE_KEY_REPEAT* = 611 GLUT_DEVICE_KEY_REPEAT* = 611
HAS_JOYSTICK* = 612 GLUT_HAS_JOYSTICK* = 612
OWNS_JOYSTICK* = 613 GLUT_OWNS_JOYSTICK* = 613
JOYSTICK_BUTTONS* = 614 GLUT_JOYSTICK_BUTTONS* = 614
JOYSTICK_AXES* = 615 GLUT_JOYSTICK_AXES* = 615
JOYSTICK_POLL_RATE* = 616 # glutLayerGet parameters. GLUT_JOYSTICK_POLL_RATE* = 616 # glutLayerGet parameters.
OVERLAY_POSSIBLE* = 800 GLUT_OVERLAY_POSSIBLE* = 800
LAYER_IN_USE* = 801 GLUT_LAYER_IN_USE* = 801
HAS_OVERLAY* = 802 GLUT_HAS_OVERLAY* = 802
TRANSPARENT_INDEX* = 803 GLUT_TRANSPARENT_INDEX* = 803
NORMAL_DAMAGED* = 804 GLUT_NORMAL_DAMAGED* = 804
OVERLAY_DAMAGED* = 805 # glutVideoResizeGet parameters. GLUT_OVERLAY_DAMAGED* = 805 # glutVideoResizeGet parameters.
VIDEO_RESIZE_POSSIBLE* = 900 GLUT_VIDEO_RESIZE_POSSIBLE* = 900
VIDEO_RESIZE_IN_USE* = 901 GLUT_VIDEO_RESIZE_IN_USE* = 901
VIDEO_RESIZE_X_DELTA* = 902 GLUT_VIDEO_RESIZE_X_DELTA* = 902
VIDEO_RESIZE_Y_DELTA* = 903 GLUT_VIDEO_RESIZE_Y_DELTA* = 903
VIDEO_RESIZE_WIDTH_DELTA* = 904 GLUT_VIDEO_RESIZE_WIDTH_DELTA* = 904
VIDEO_RESIZE_HEIGHT_DELTA* = 905 GLUT_VIDEO_RESIZE_HEIGHT_DELTA* = 905
VIDEO_RESIZE_X* = 906 GLUT_VIDEO_RESIZE_X* = 906
VIDEO_RESIZE_Y* = 907 GLUT_VIDEO_RESIZE_Y* = 907
VIDEO_RESIZE_WIDTH* = 908 GLUT_VIDEO_RESIZE_WIDTH* = 908
VIDEO_RESIZE_HEIGHT* = 909 # glutGetModifiers return mask. GLUT_VIDEO_RESIZE_HEIGHT* = 909 # glutGetModifiers return mask.
ACTIVE_SHIFT* = 1 GLUT_ACTIVE_SHIFT* = 1
ACTIVE_CTRL* = 2 GLUT_ACTIVE_CTRL* = 2
ACTIVE_ALT* = 4 # glutSetCursor parameters. GLUT_ACTIVE_ALT* = 4 # glutSetCursor parameters.
# Basic arrows. # Basic arrows.
CURSOR_RIGHT_ARROW* = 0 GLUT_CURSOR_RIGHT_ARROW* = 0
CURSOR_LEFT_ARROW* = 1 # Symbolic cursor shapes. GLUT_CURSOR_LEFT_ARROW* = 1 # Symbolic cursor shapes.
CURSOR_INFO* = 2 GLUT_CURSOR_INFO* = 2
CURSOR_DESTROY* = 3 GLUT_CURSOR_DESTROY* = 3
CURSOR_HELP* = 4 GLUT_CURSOR_HELP* = 4
CURSOR_CYCLE* = 5 GLUT_CURSOR_CYCLE* = 5
CURSOR_SPRAY* = 6 GLUT_CURSOR_SPRAY* = 6
CURSOR_WAIT* = 7 GLUT_CURSOR_WAIT* = 7
CURSOR_TEXT* = 8 GLUT_CURSOR_TEXT* = 8
CURSOR_CROSSHAIR* = 9 # Directional cursors. GLUT_CURSOR_CROSSHAIR* = 9 # Directional cursors.
CURSOR_UP_DOWN* = 10 GLUT_CURSOR_UP_DOWN* = 10
CURSOR_LEFT_RIGHT* = 11 # Sizing cursors. GLUT_CURSOR_LEFT_RIGHT* = 11 # Sizing cursors.
CURSOR_TOP_SIDE* = 12 GLUT_CURSOR_TOP_SIDE* = 12
CURSOR_BOTTOM_SIDE* = 13 GLUT_CURSOR_BOTTOM_SIDE* = 13
CURSOR_LEFT_SIDE* = 14 GLUT_CURSOR_LEFT_SIDE* = 14
CURSOR_RIGHT_SIDE* = 15 GLUT_CURSOR_RIGHT_SIDE* = 15
CURSOR_TOP_LEFT_CORNER* = 16 GLUT_CURSOR_TOP_LEFT_CORNER* = 16
CURSOR_TOP_RIGHT_CORNER* = 17 GLUT_CURSOR_TOP_RIGHT_CORNER* = 17
CURSOR_BOTTOM_RIGHT_CORNER* = 18 GLUT_CURSOR_BOTTOM_RIGHT_CORNER* = 18
CURSOR_BOTTOM_LEFT_CORNER* = 19 # Inherit from parent window. GLUT_CURSOR_BOTTOM_LEFT_CORNER* = 19 # Inherit from parent window.
CURSOR_INHERIT* = 100 # Blank cursor. GLUT_CURSOR_INHERIT* = 100 # Blank cursor.
CURSOR_NONE* = 101 # Fullscreen crosshair (if available). GLUT_CURSOR_NONE* = 101 # Fullscreen crosshair (if available).
CURSOR_FULL_CROSSHAIR* = 102 # GLUT device control sub-API. GLUT_CURSOR_FULL_CROSSHAIR* = 102 # GLUT device control sub-API.
# glutSetKeyRepeat modes. # glutSetKeyRepeat modes.
KEY_REPEAT_OFF* = 0 GLUT_KEY_REPEAT_OFF* = 0
KEY_REPEAT_ON* = 1 GLUT_KEY_REPEAT_ON* = 1
KEY_REPEAT_DEFAULT* = 2 # Joystick button masks. GLUT_KEY_REPEAT_DEFAULT* = 2 # Joystick button masks.
JOYSTICK_BUTTON_A* = 1 GLUT_JOYSTICK_BUTTON_A* = 1
JOYSTICK_BUTTON_B* = 2 GLUT_JOYSTICK_BUTTON_B* = 2
JOYSTICK_BUTTON_C* = 4 GLUT_JOYSTICK_BUTTON_C* = 4
JOYSTICK_BUTTON_D* = 8 # GLUT game mode sub-API. GLUT_JOYSTICK_BUTTON_D* = 8 # GLUT game mode sub-API.
# glutGameModeGet. # glutGameModeGet.
GAME_MODE_ACTIVE* = 0 GLUT_GAME_MODE_ACTIVE* = 0
GAME_MODE_POSSIBLE* = 1 GLUT_GAME_MODE_POSSIBLE* = 1
GAME_MODE_WIDTH* = 2 GLUT_GAME_MODE_WIDTH* = 2
GAME_MODE_HEIGHT* = 3 GLUT_GAME_MODE_HEIGHT* = 3
GAME_MODE_PIXEL_DEPTH* = 4 GLUT_GAME_MODE_PIXEL_DEPTH* = 4
GAME_MODE_REFRESH_RATE* = 5 GLUT_GAME_MODE_REFRESH_RATE* = 5
GAME_MODE_DISPLAY_CHANGED* = 6 # GLUT initialization sub-API. GLUT_GAME_MODE_DISPLAY_CHANGED* = 6 # GLUT initialization sub-API.
{.push cdecl, dynlib: dllname, importc: "glut$1".} {.push dynlib: dllname, importc.}
proc Init*(argcp: ptr cint, argv: pointer) proc glutInit*(argcp: ptr cint, argv: pointer)
proc Init*() = proc glutInit*() =
## version that passes `argc` and `argc` implicitely. ## version that passes `argc` and `argc` implicitely.
var var
cmdLine {.importc: "cmdLine".}: array[0..255, cstring] cmdLine {.importc: "cmdLine".}: array[0..255, cstring]
cmdCount {.importc: "cmdCount".}: cint cmdCount {.importc: "cmdCount".}: cint
glutInit(addr(cmdCount), addr(cmdLine)) glutInit(addr(cmdCount), addr(cmdLine))
proc InitDisplayMode*(mode: int16) proc glutInitDisplayMode*(mode: int16)
proc InitDisplayString*(str: cstring) proc glutInitDisplayString*(str: cstring)
proc InitWindowPosition*(x, y: int) proc glutInitWindowPosition*(x, y: int)
proc InitWindowSize*(width, height: int) proc glutInitWindowSize*(width, height: int)
proc MainLoop*() proc glutMainLoop*()
# GLUT window sub-API. # GLUT window sub-API.
proc CreateWindow*(title: cstring): int proc glutCreateWindow*(title: cstring): int
proc CreateSubWindow*(win, x, y, width, height: int): int proc glutCreateSubWindow*(win, x, y, width, height: int): int
proc DestroyWindow*(win: int) proc glutDestroyWindow*(win: int)
proc PostRedisplay*() proc glutPostRedisplay*()
proc PostWindowRedisplay*(win: int) proc glutPostWindowRedisplay*(win: int)
proc SwapBuffers*() proc glutSwapBuffers*()
proc SetWindow*(win: int) proc glutSetWindow*(win: int)
proc SetWindowTitle*(title: cstring) proc glutSetWindowTitle*(title: cstring)
proc SetIconTitle*(title: cstring) proc glutSetIconTitle*(title: cstring)
proc PositionWindow*(x, y: int) proc glutPositionWindow*(x, y: int)
proc ReshapeWindow*(width, height: int) proc glutReshapeWindow*(width, height: int)
proc PopWindow*() proc glutPopWindow*()
proc PushWindow*() proc glutPushWindow*()
proc IconifyWindow*() proc glutIconifyWindow*()
proc ShowWindow*() proc glutShowWindow*()
proc HideWindow*() proc glutHideWindow*()
proc FullScreen*() proc glutFullScreen*()
proc SetCursor*(cursor: int) proc glutSetCursor*(cursor: int)
proc Warppointer*(x, y: int) proc glutWarpPointer*(x, y: int)
# GLUT overlay sub-API. # GLUT overlay sub-API.
proc EstablishOverlay*() proc glutEstablishOverlay*()
proc RemoveOverlay*() proc glutRemoveOverlay*()
proc UseLayer*(layer: GLenum) proc glutUseLayer*(layer: TGLenum)
proc PostOverlayRedisplay*() proc glutPostOverlayRedisplay*()
proc PostWindowOverlayRedisplay*(win: int) proc glutPostWindowOverlayRedisplay*(win: int)
proc ShowOverlay*() proc glutShowOverlay*()
proc HideOverlay*() proc glutHideOverlay*()
# GLUT menu sub-API. # GLUT menu sub-API.
proc CreateMenu*(callback: OneIntCallback): int proc glutCreateMenu*(callback: TGlut1IntCallback): int
proc DestroyMenu*(menu: int) proc glutDestroyMenu*(menu: int)
proc GetMenu*(): int proc glutGetMenu*(): int
proc SetMenu*(menu: int) proc glutSetMenu*(menu: int)
proc AddMenuEntry*(caption: cstring, value: int) proc glutAddMenuEntry*(caption: cstring, value: int)
proc AddSubMenu*(caption: cstring, submenu: int) proc glutAddSubMenu*(caption: cstring, submenu: int)
proc ChangeToMenuEntry*(item: int, caption: cstring, value: int) proc glutChangeToMenuEntry*(item: int, caption: cstring, value: int)
proc ChangeToSubMenu*(item: int, caption: cstring, submenu: int) proc glutChangeToSubMenu*(item: int, caption: cstring, submenu: int)
proc RemoveMenuItem*(item: int) proc glutRemoveMenuItem*(item: int)
proc AttachMenu*(button: int) proc glutAttachMenu*(button: int)
proc DetachMenu*(button: int) proc glutDetachMenu*(button: int)
# GLUT window callback sub-API. # GLUT window callback sub-API.
proc DisplayFunc*(f: VoidCallback) proc glutDisplayFunc*(f: TGlutVoidCallback)
proc CloseFunc*(f: VoidCallback) proc glutCloseFunc*(f: TGlutVoidCallback)
proc ReshapeFunc*(f: TwoIntCallback) proc glutReshapeFunc*(f: TGlut2IntCallback)
proc KeyboardFunc*(f: OneCharTwoIntCallback) proc glutKeyboardFunc*(f: TGlut1Char2IntCallback)
proc MouseFunc*(f: FourIntCallback) proc glutMouseFunc*(f: TGlut4IntCallback)
proc MotionFunc*(f: TwoIntCallback) proc glutMotionFunc*(f: TGlut2IntCallback)
proc PassiveMotionFunc*(f: TwoIntCallback) proc glutPassiveMotionFunc*(f: TGlut2IntCallback)
proc EntryFunc*(f: OneIntCallback) proc glutEntryFunc*(f: TGlut1IntCallback)
proc VisibilityFunc*(f: OneIntCallback) proc glutVisibilityFunc*(f: TGlut1IntCallback)
proc IdleFunc*(f: VoidCallback) proc glutIdleFunc*(f: TGlutVoidCallback)
proc TimerFunc*(millis: int16, f: OneIntCallback, value: int) proc glutTimerFunc*(millis: int16, f: TGlut1IntCallback, value: int)
proc MenuStateFunc*(f: OneIntCallback) proc glutMenuStateFunc*(f: TGlut1IntCallback)
proc SpecialFunc*(f: ThreeIntCallback) proc glutSpecialFunc*(f: TGlut3IntCallback)
proc SpaceballMotionFunc*(f: ThreeIntCallback) proc glutSpaceballMotionFunc*(f: TGlut3IntCallback)
proc SpaceballRotateFunc*(f: ThreeIntCallback) proc glutSpaceballRotateFunc*(f: TGlut3IntCallback)
proc SpaceballButtonFunc*(f: TwoIntCallback) proc glutSpaceballButtonFunc*(f: TGlut2IntCallback)
proc ButtonBoxFunc*(f: TwoIntCallback) proc glutButtonBoxFunc*(f: TGlut2IntCallback)
proc DialsFunc*(f: TwoIntCallback) proc glutDialsFunc*(f: TGlut2IntCallback)
proc TabletMotionFunc*(f: TwoIntCallback) proc glutTabletMotionFunc*(f: TGlut2IntCallback)
proc TabletButtonFunc*(f: FourIntCallback) proc glutTabletButtonFunc*(f: TGlut4IntCallback)
proc MenuStatusFunc*(f: ThreeIntCallback) proc glutMenuStatusFunc*(f: TGlut3IntCallback)
proc OverlayDisplayFunc*(f: VoidCallback) proc glutOverlayDisplayFunc*(f: TGlutVoidCallback)
proc WindowStatusFunc*(f: OneIntCallback) proc glutWindowStatusFunc*(f: TGlut1IntCallback)
proc KeyboardUpFunc*(f: OneCharTwoIntCallback) proc glutKeyboardUpFunc*(f: TGlut1Char2IntCallback)
proc SpecialUpFunc*(f: ThreeIntCallback) proc glutSpecialUpFunc*(f: TGlut3IntCallback)
proc JoystickFunc*(f: OneUIntThreeIntCallback, pollInterval: int) proc glutJoystickFunc*(f: TGlut1UInt3IntCallback, pollInterval: int)
# GLUT color index sub-API. # GLUT color index sub-API.
proc SetColor*(cell: int, red, green, blue: GLfloat) proc glutSetColor*(cell: int, red, green, blue: TGLfloat)
proc GetColor*(ndx, component: int): GLfloat proc glutGetColor*(ndx, component: int): TGLfloat
proc CopyColormap*(win: int) proc glutCopyColormap*(win: int)
# GLUT state retrieval sub-API. # GLUT state retrieval sub-API.
proc Get*(t: GLenum): int proc glutGet*(t: TGLenum): int
proc DeviceGet*(t: GLenum): int proc glutDeviceGet*(t: TGLenum): int
# GLUT extension support sub-API # GLUT extension support sub-API
proc GetModifiers*(): int proc glutGetModifiers*(): int
proc LayerGet*(t: GLenum): int proc glutLayerGet*(t: TGLenum): int
proc ExtensionSupported*(name: cstring): int proc glutExtensionSupported*(name: cstring): int
# GLUT font sub-API # GLUT font sub-API
proc BitmapCharacter*(font: pointer, character: int) proc glutBitmapCharacter*(font: pointer, character: int)
proc BitmapWidth*(font: pointer, character: int): int proc glutBitmapWidth*(font: pointer, character: int): int
proc StrokeCharacter*(font: pointer, character: int) proc glutStrokeCharacter*(font: pointer, character: int)
proc StrokeWidth*(font: pointer, character: int): int proc glutStrokeWidth*(font: pointer, character: int): int
proc BitmapLength*(font: pointer, str: cstring): int proc glutBitmapLength*(font: pointer, str: cstring): int
proc StrokeLength*(font: pointer, str: cstring): int proc glutStrokeLength*(font: pointer, str: cstring): int
# GLUT pre-built models sub-API # GLUT pre-built models sub-API
proc WireSphere*(radius: GLdouble, slices, stacks: GLint) proc glutWireSphere*(radius: TGLdouble, slices, stacks: TGLint)
proc SolidSphere*(radius: GLdouble, slices, stacks: GLint) proc glutSolidSphere*(radius: TGLdouble, slices, stacks: TGLint)
proc WireCone*(base, height: GLdouble, slices, stacks: GLint) proc glutWireCone*(base, height: TGLdouble, slices, stacks: TGLint)
proc SolidCone*(base, height: GLdouble, slices, stacks: GLint) proc glutSolidCone*(base, height: TGLdouble, slices, stacks: TGLint)
proc WireCube*(size: GLdouble) proc glutWireCube*(size: TGLdouble)
proc SolidCube*(size: GLdouble) proc glutSolidCube*(size: TGLdouble)
proc WireTorus*(innerRadius, outerRadius: GLdouble, sides, rings: GLint) proc glutWireTorus*(innerRadius, outerRadius: TGLdouble, sides, rings: TGLint)
proc SolidTorus*(innerRadius, outerRadius: GLdouble, sides, rings: GLint) proc glutSolidTorus*(innerRadius, outerRadius: TGLdouble, sides, rings: TGLint)
proc WireDodecahedron*() proc glutWireDodecahedron*()
proc SolidDodecahedron*() proc glutSolidDodecahedron*()
proc WireTeapot*(size: GLdouble) proc glutWireTeapot*(size: TGLdouble)
proc SolidTeapot*(size: GLdouble) proc glutSolidTeapot*(size: TGLdouble)
proc WireOctahedron*() proc glutWireOctahedron*()
proc SolidOctahedron*() proc glutSolidOctahedron*()
proc WireTetrahedron*() proc glutWireTetrahedron*()
proc SolidTetrahedron*() proc glutSolidTetrahedron*()
proc WireIcosahedron*() proc glutWireIcosahedron*()
proc SolidIcosahedron*() proc glutSolidIcosahedron*()
# GLUT video resize sub-API. # GLUT video resize sub-API.
proc VideoResizeGet*(param: GLenum): int proc glutVideoResizeGet*(param: TGLenum): int
proc SetupVideoResizing*() proc glutSetupVideoResizing*()
proc StopVideoResizing*() proc glutStopVideoResizing*()
proc VideoResize*(x, y, width, height: int) proc glutVideoResize*(x, y, width, height: int)
proc VideoPan*(x, y, width, height: int) proc glutVideoPan*(x, y, width, height: int)
# GLUT debugging sub-API. # GLUT debugging sub-API.
proc ReportErrors*() proc glutReportErrors*()
# GLUT device control sub-API. # GLUT device control sub-API.
proc IgnoreKeyRepeat*(ignore: int) proc glutIgnoreKeyRepeat*(ignore: int)
proc SetKeyRepeat*(repeatMode: int) proc glutSetKeyRepeat*(repeatMode: int)
proc ForceJoystickFunc*() proc glutForceJoystickFunc*()
# GLUT game mode sub-API. # GLUT game mode sub-API.
#example glutGameModeString('1280x1024:32@75'); #example glutGameModeString('1280x1024:32@75');
proc GameModeString*(AString: cstring) proc glutGameModeString*(AString: cstring)
proc EnterGameMode*() proc glutEnterGameMode*()
proc LeaveGameMode*() proc glutLeaveGameMode*()
proc GameModeGet*(mode: GLenum): int proc glutGameModeGet*(mode: TGLenum): int
# implementation # implementation
{.pop.} # dynlib: dllname, importc {.pop.} # dynlib: dllname, importc

View file

@ -37,55 +37,55 @@ else:
const const
dllname = "libGL.so" dllname = "libGL.so"
const const
USE_GL* = 1'i32 GLX_USE_GL* = 1'i32
BUFFER_SIZE* = 2'i32 GLX_BUFFER_SIZE* = 2'i32
LEVEL* = 3'i32 GLX_LEVEL* = 3'i32
RGBA* = 4'i32 GLX_RGBA* = 4'i32
DOUBLEBUFFER* = 5'i32 GLX_DOUBLEBUFFER* = 5'i32
STEREO* = 6'i32 GLX_STEREO* = 6'i32
AUX_BUFFERS* = 7'i32 GLX_AUX_BUFFERS* = 7'i32
RED_SIZE* = 8'i32 GLX_RED_SIZE* = 8'i32
GREEN_SIZE* = 9'i32 GLX_GREEN_SIZE* = 9'i32
BLUE_SIZE* = 10'i32 GLX_BLUE_SIZE* = 10'i32
ALPHA_SIZE* = 11'i32 GLX_ALPHA_SIZE* = 11'i32
DEPTH_SIZE* = 12'i32 GLX_DEPTH_SIZE* = 12'i32
STENCIL_SIZE* = 13'i32 GLX_STENCIL_SIZE* = 13'i32
ACCUM_RED_SIZE* = 14'i32 GLX_ACCUM_RED_SIZE* = 14'i32
ACCUM_GREEN_SIZE* = 15'i32 GLX_ACCUM_GREEN_SIZE* = 15'i32
ACCUM_BLUE_SIZE* = 16'i32 GLX_ACCUM_BLUE_SIZE* = 16'i32
ACCUM_ALPHA_SIZE* = 17'i32 # EXT_visual_info extension GLX_ACCUM_ALPHA_SIZE* = 17'i32 # GLX_EXT_visual_info extension
X_VISUAL_TYPE_EXT* = 0x00000022 GLX_X_VISUAL_TYPE_EXT* = 0x00000022
TRANSPARENT_TYPE_EXT* = 0x00000023 GLX_TRANSPARENT_TYPE_EXT* = 0x00000023
TRANSPARENT_INDEX_VALUE_EXT* = 0x00000024 GLX_TRANSPARENT_INDEX_VALUE_EXT* = 0x00000024
TRANSPARENT_RED_VALUE_EXT* = 0x00000025 GLX_TRANSPARENT_RED_VALUE_EXT* = 0x00000025
TRANSPARENT_GREEN_VALUE_EXT* = 0x00000026 GLX_TRANSPARENT_GREEN_VALUE_EXT* = 0x00000026
TRANSPARENT_BLUE_VALUE_EXT* = 0x00000027 GLX_TRANSPARENT_BLUE_VALUE_EXT* = 0x00000027
TRANSPARENT_ALPHA_VALUE_EXT* = 0x00000028 # Error codes returned by glXGetConfig: GLX_TRANSPARENT_ALPHA_VALUE_EXT* = 0x00000028 # Error codes returned by glXGetConfig:
BAD_SCREEN* = 1 GLX_BAD_SCREEN* = 1
BAD_ATTRIBUTE* = 2 GLX_BAD_ATTRIBUTE* = 2
NO_EXTENSION* = 3 GLX_NO_EXTENSION* = 3
BAD_VISUAL* = 4 GLX_BAD_VISUAL* = 4
BAD_CONTEXT* = 5 GLX_BAD_CONTEXT* = 5
BAD_VALUE* = 6 GLX_BAD_VALUE* = 6
BAD_ENUM* = 7 # GLX 1.1 and later: GLX_BAD_ENUM* = 7 # GLX 1.1 and later:
VENDOR* = 1 GLX_VENDOR* = 1
VERSION* = 2 GLX_VERSION* = 2
EXTENSIONS* = 3 # visual_info extension GLX_EXTENSIONS* = 3 # GLX_visual_info extension
TRUE_COLOR_EXT* = 0x00008002 GLX_TRUE_COLOR_EXT* = 0x00008002
DIRECT_COLOR_EXT* = 0x00008003 GLX_DIRECT_COLOR_EXT* = 0x00008003
PSEUDO_COLOR_EXT* = 0x00008004 GLX_PSEUDO_COLOR_EXT* = 0x00008004
STATIC_COLOR_EXT* = 0x00008005 GLX_STATIC_COLOR_EXT* = 0x00008005
GRAY_SCALE_EXT* = 0x00008006 GLX_GRAY_SCALE_EXT* = 0x00008006
STATIC_GRAY_EXT* = 0x00008007 GLX_STATIC_GRAY_EXT* = 0x00008007
NONE_EXT* = 0x00008000 GLX_NONE_EXT* = 0x00008000
TRANSPARENT_RGB_EXT* = 0x00008008 GLX_TRANSPARENT_RGB_EXT* = 0x00008008
TRANSPARENT_INDEX_EXT* = 0x00008009 GLX_TRANSPARENT_INDEX_EXT* = 0x00008009
type # From XLib: type # From XLib:
XPixmap* = TXID XPixmap* = TXID
XFont* = TXID XFont* = TXID
XColormap* = TXID XColormap* = TXID
GLXContext* = pointer GLXContext* = Pointer
GLXPixmap* = TXID GLXPixmap* = TXID
GLXDrawable* = TXID GLXDrawable* = TXID
GLXContextID* = TXID GLXContextID* = TXID
@ -97,38 +97,58 @@ type # From XLib:
TGLXDrawable* = GLXDrawable TGLXDrawable* = GLXDrawable
TGLXContextID* = GLXContextID TGLXContextID* = GLXContextID
{.push cdecl, dynlib: dllname, importc: "glX$1".} proc glXChooseVisual*(dpy: PDisplay, screen: int, attribList: ptr int32): PXVisualInfo{.
cdecl, dynlib: dllname, importc: "glXChooseVisual".}
proc glXChooseVisual*(dpy: PDisplay, screen: int, attribList: ptr int32): PXVisualInfo
proc glXCreateContext*(dpy: PDisplay, vis: PXVisualInfo, shareList: GLXContext, proc glXCreateContext*(dpy: PDisplay, vis: PXVisualInfo, shareList: GLXContext,
direct: bool): GLXContext direct: bool): GLXContext{.cdecl, dynlib: dllname,
proc glXDestroyContext*(dpy: PDisplay, ctx: GLXContext) importc: "glXCreateContext".}
proc glXMakeCurrent*(dpy: PDisplay, drawable: GLXDrawable, ctx: GLXContext): bool proc glXDestroyContext*(dpy: PDisplay, ctx: GLXContext){.cdecl, dynlib: dllname,
proc glXCopyContext*(dpy: PDisplay, src, dst: GLXContext, mask: int32) importc: "glXDestroyContext".}
proc glXSwapBuffers*(dpy: PDisplay, drawable: GLXDrawable) proc glXMakeCurrent*(dpy: PDisplay, drawable: GLXDrawable, ctx: GLXContext): bool{.
proc glXCreateGLXPixmap*(dpy: PDisplay, visual: PXVisualInfo, pixmap: XPixmap): GLXPixmap cdecl, dynlib: dllname, importc: "glXMakeCurrent".}
proc glXDestroyGLXPixmap*(dpy: PDisplay, pixmap: GLXPixmap) proc glXCopyContext*(dpy: PDisplay, src, dst: GLXContext, mask: int32){.cdecl,
proc glXQueryExtension*(dpy: PDisplay, errorb, event: var int): bool dynlib: dllname, importc: "glXCopyContext".}
proc glXQueryVersion*(dpy: PDisplay, maj, min: var int): bool proc glXSwapBuffers*(dpy: PDisplay, drawable: GLXDrawable){.cdecl,
proc glXIsDirect*(dpy: PDisplay, ctx: GLXContext): bool dynlib: dllname, importc: "glXSwapBuffers".}
proc glXCreateGLXPixmap*(dpy: PDisplay, visual: PXVisualInfo, pixmap: XPixmap): GLXPixmap{.
cdecl, dynlib: dllname, importc: "glXCreateGLXPixmap".}
proc glXDestroyGLXPixmap*(dpy: PDisplay, pixmap: GLXPixmap){.cdecl,
dynlib: dllname, importc: "glXDestroyGLXPixmap".}
proc glXQueryExtension*(dpy: PDisplay, errorb, event: var int): bool{.cdecl,
dynlib: dllname, importc: "glXQueryExtension".}
proc glXQueryVersion*(dpy: PDisplay, maj, min: var int): bool{.cdecl,
dynlib: dllname, importc: "glXQueryVersion".}
proc glXIsDirect*(dpy: PDisplay, ctx: GLXContext): bool{.cdecl, dynlib: dllname,
importc: "glXIsDirect".}
proc glXGetConfig*(dpy: PDisplay, visual: PXVisualInfo, attrib: int, proc glXGetConfig*(dpy: PDisplay, visual: PXVisualInfo, attrib: int,
value: var int): int value: var int): int{.cdecl, dynlib: dllname,
proc glXGetCurrentContext*(): GLXContext importc: "glXGetConfig".}
proc glXGetCurrentDrawable*(): GLXDrawable proc glXGetCurrentContext*(): GLXContext{.cdecl, dynlib: dllname,
proc glXWaitGL*() importc: "glXGetCurrentContext".}
proc glXWaitX*() proc glXGetCurrentDrawable*(): GLXDrawable{.cdecl, dynlib: dllname,
proc glXUseXFont*(font: XFont, first, count, list: int) importc: "glXGetCurrentDrawable".}
proc glXWaitGL*(){.cdecl, dynlib: dllname, importc: "glXWaitGL".}
proc glXWaitX*(){.cdecl, dynlib: dllname, importc: "glXWaitX".}
proc glXUseXFont*(font: XFont, first, count, list: int){.cdecl, dynlib: dllname,
importc: "glXUseXFont".}
# GLX 1.1 and later # GLX 1.1 and later
proc glXQueryExtensionsString*(dpy: PDisplay, screen: int): cstring proc glXQueryExtensionsString*(dpy: PDisplay, screen: int): cstring{.cdecl,
proc glXQueryServerString*(dpy: PDisplay, screen, name: int): cstring dynlib: dllname, importc: "glXQueryExtensionsString".}
proc glXGetClientString*(dpy: PDisplay, name: int): cstring proc glXQueryServerString*(dpy: PDisplay, screen, name: int): cstring{.cdecl,
dynlib: dllname, importc: "glXQueryServerString".}
proc glXGetClientString*(dpy: PDisplay, name: int): cstring{.cdecl,
dynlib: dllname, importc: "glXGetClientString".}
# Mesa GLX Extensions # Mesa GLX Extensions
proc glXCreateGLXPixmapMESA*(dpy: PDisplay, visual: PXVisualInfo, proc glXCreateGLXPixmapMESA*(dpy: PDisplay, visual: PXVisualInfo,
pixmap: XPixmap, cmap: XColormap): GLXPixmap pixmap: XPixmap, cmap: XColormap): GLXPixmap{.
proc glXReleaseBufferMESA*(dpy: PDisplay, d: GLXDrawable): bool cdecl, dynlib: dllname, importc: "glXCreateGLXPixmapMESA".}
proc glXReleaseBufferMESA*(dpy: PDisplay, d: GLXDrawable): bool{.cdecl,
dynlib: dllname, importc: "glXReleaseBufferMESA".}
proc glXCopySubBufferMESA*(dpy: PDisplay, drawbale: GLXDrawable, proc glXCopySubBufferMESA*(dpy: PDisplay, drawbale: GLXDrawable,
x, y, width, height: int) x, y, width, height: int){.cdecl, dynlib: dllname,
proc glXGetVideoSyncSGI*(counter: var int32): int importc: "glXCopySubBufferMESA".}
proc glXWaitVideoSyncSGI*(divisor, remainder: int, count: var int32): int proc glXGetVideoSyncSGI*(counter: var int32): int{.cdecl, dynlib: dllname,
importc: "glXGetVideoSyncSGI".}
proc glXWaitVideoSyncSGI*(divisor, remainder: int, count: var int32): int{.
cdecl, dynlib: dllname, importc: "glXWaitVideoSyncSGI".}
# implementation # implementation
{.pop.}

File diff suppressed because it is too large Load diff