Compare commits
No commits in common. "master" and "patch-1" have entirely different histories.
4 changed files with 8492 additions and 8449 deletions
487
src/glu.nim
487
src/glu.nim
|
|
@ -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
|
||||||
|
|
|
||||||
620
src/glut.nim
620
src/glut.nim
|
|
@ -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
|
||||||
|
|
|
||||||
164
src/glx.nim
164
src/glx.nim
|
|
@ -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.}
|
|
||||||
|
|
|
||||||
15670
src/opengl.nim
15670
src/opengl.nim
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue