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

View file

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

View file

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

File diff suppressed because it is too large Load diff