Compare commits
1 commit
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d9ae89a1b1 |
4 changed files with 8449 additions and 8492 deletions
487
src/glu.nim
487
src/glu.nim
|
|
@ -28,12 +28,12 @@ else:
|
||||||
dllname = "libGLU.so.1"
|
dllname = "libGLU.so.1"
|
||||||
|
|
||||||
type
|
type
|
||||||
TViewPortArray* = array[0..3, TGLint]
|
ViewPortArray* = array[0..3, GLint]
|
||||||
T16dArray* = array[0..15, TGLdouble]
|
c16dArray* = array[0..15, GLdouble]
|
||||||
TCallBack* = proc ()
|
CallBack* = proc ()
|
||||||
T3dArray* = array[0..2, TGLdouble]
|
c3dArray* = array[0..2, GLdouble]
|
||||||
T4pArray* = array[0..3, pointer]
|
c4pArray* = array[0..3, pointer]
|
||||||
T4fArray* = array[0..3, TGLfloat]
|
c4fArray* = array[0..3, GLfloat]
|
||||||
|
|
||||||
type
|
type
|
||||||
GLUnurbs*{.final.} = object
|
GLUnurbs*{.final.} = object
|
||||||
|
|
@ -50,286 +50,255 @@ 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
|
|
||||||
|
|
||||||
proc gluErrorString*(errCode: TGLenum): cstring{.dynlib: dllname,
|
{.deprecated: [TGLUnurbs: GLUnurbs,
|
||||||
importc: "gluErrorString".}
|
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
|
||||||
when defined(Windows):
|
when defined(Windows):
|
||||||
proc gluErrorUnicodeStringEXT*(errCode: TGLenum): ptr int16{.dynlib: dllname,
|
proc ErrorUnicodeStringEXT*(errCode: GLenum): ptr int16
|
||||||
importc: "gluErrorUnicodeStringEXT".}
|
proc GetString*(name: GLenum): cstring
|
||||||
proc gluGetString*(name: TGLenum): cstring{.dynlib: dllname,
|
proc Ortho2D*(left, right, bottom, top: GLdouble)
|
||||||
importc: "gluGetString".}
|
proc Perspective*(fovy, aspect, zNear, zFar: GLdouble)
|
||||||
proc gluOrtho2D*(left, right, bottom, top: TGLdouble){.dynlib: dllname,
|
proc PickMatrix*(x, y, width, height: GLdouble, viewport: var ViewPortArray)
|
||||||
importc: "gluOrtho2D".}
|
proc LookAt*(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: GLdouble)
|
||||||
proc gluPerspective*(fovy, aspect, zNear, zFar: TGLdouble){.dynlib: dllname,
|
proc Project*(objx, objy, objz: GLdouble,
|
||||||
importc: "gluPerspective".}
|
modelMatrix, projMatrix: var c16dArray,
|
||||||
proc gluPickMatrix*(x, y, width, height: TGLdouble, viewport: var TViewPortArray){.
|
viewport: var ViewPortArray, winx, winy, winz: ptr GLdouble): int
|
||||||
dynlib: dllname, importc: "gluPickMatrix".}
|
proc UnProject*(winx, winy, winz: GLdouble,
|
||||||
proc gluLookAt*(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: TGLdouble){.
|
modelMatrix, projMatrix: var c16dArray,
|
||||||
dynlib: dllname, importc: "gluLookAt".}
|
viewport: var ViewPortArray, objx, objy, objz: ptr GLdouble): int
|
||||||
proc gluProject*(objx, objy, objz: TGLdouble,
|
proc ScaleImage*(format: GLenum, widthin, heightin: GLint, typein: GLenum,
|
||||||
modelMatrix, projMatrix: var T16dArray,
|
datain: pointer, widthout, heightout: GLint,
|
||||||
viewport: var TViewPortArray, winx, winy, winz: ptr TGLdouble): int{.
|
typeout: GLenum, dataout: pointer): int
|
||||||
dynlib: dllname, importc: "gluProject".}
|
proc Build1DMipmaps*(target: GLenum, components, width: GLint,
|
||||||
proc gluUnProject*(winx, winy, winz: TGLdouble,
|
format, atype: GLenum, data: pointer): int
|
||||||
modelMatrix, projMatrix: var T16dArray,
|
proc Build2DMipmaps*(target: GLenum, components, width, height: GLint,
|
||||||
viewport: var TViewPortArray, objx, objy, objz: ptr TGLdouble): int{.
|
format, atype: GLenum, data: pointer): int
|
||||||
dynlib: dllname, importc: "gluUnProject".}
|
proc NewQuadric*(): PGLUquadric
|
||||||
proc gluScaleImage*(format: TGLenum, widthin, heightin: TGLint, typein: TGLenum,
|
proc DeleteQuadric*(state: PGLUquadric)
|
||||||
datain: pointer, widthout, heightout: TGLint,
|
proc QuadricNormals*(quadObject: PGLUquadric, normals: GLenum)
|
||||||
typeout: TGLenum, dataout: pointer): int{.dynlib: dllname,
|
proc QuadricTexture*(quadObject: PGLUquadric, textureCoords: GLboolean)
|
||||||
importc: "gluScaleImage".}
|
proc QuadricOrientation*(quadObject: PGLUquadric, orientation: GLenum)
|
||||||
proc gluBuild1DMipmaps*(target: TGLenum, components, width: TGLint,
|
proc QuadricDrawStyle*(quadObject: PGLUquadric, drawStyle: GLenum)
|
||||||
format, atype: TGLenum, data: pointer): int{.
|
proc Cylinder*(qobj: PGLUquadric, baseRadius, topRadius, height: GLdouble,
|
||||||
dynlib: dllname, importc: "gluBuild1DMipmaps".}
|
slices, stacks: GLint)
|
||||||
proc gluBuild2DMipmaps*(target: TGLenum, components, width, height: TGLint,
|
proc Disk*(qobj: PGLUquadric, innerRadius, outerRadius: GLdouble,
|
||||||
format, atype: TGLenum, data: pointer): int{.
|
slices, loops: GLint)
|
||||||
dynlib: dllname, importc: "gluBuild2DMipmaps".}
|
proc PartialDisk*(qobj: PGLUquadric, innerRadius, outerRadius: GLdouble,
|
||||||
proc gluNewQuadric*(): PGLUquadric{.dynlib: dllname, importc: "gluNewQuadric".}
|
slices, loops: GLint, startAngle, sweepAngle: GLdouble)
|
||||||
proc gluDeleteQuadric*(state: PGLUquadric){.dynlib: dllname,
|
proc Sphere*(qobj: PGLuquadric, radius: GLdouble, slices, stacks: GLint)
|
||||||
importc: "gluDeleteQuadric".}
|
proc QuadricCallback*(qobj: PGLUquadric, which: GLenum, fn: Callback)
|
||||||
proc gluQuadricNormals*(quadObject: PGLUquadric, normals: TGLenum){.
|
proc NewTess*(): PGLUtesselator
|
||||||
dynlib: dllname, importc: "gluQuadricNormals".}
|
proc DeleteTess*(tess: PGLUtesselator)
|
||||||
proc gluQuadricTexture*(quadObject: PGLUquadric, textureCoords: TGLboolean){.
|
proc TessBeginPolygon*(tess: PGLUtesselator, polygon_data: pointer)
|
||||||
dynlib: dllname, importc: "gluQuadricTexture".}
|
proc TessBeginContour*(tess: PGLUtesselator)
|
||||||
proc gluQuadricOrientation*(quadObject: PGLUquadric, orientation: TGLenum){.
|
proc TessVertex*(tess: PGLUtesselator, coords: var c3dArray, data: pointer)
|
||||||
dynlib: dllname, importc: "gluQuadricOrientation".}
|
proc TessEndContour*(tess: PGLUtesselator)
|
||||||
proc gluQuadricDrawStyle*(quadObject: PGLUquadric, drawStyle: TGLenum){.
|
proc TessEndPolygon*(tess: PGLUtesselator)
|
||||||
dynlib: dllname, importc: "gluQuadricDrawStyle".}
|
proc TessProperty*(tess: PGLUtesselator, which: GLenum, value: GLdouble)
|
||||||
proc gluCylinder*(qobj: PGLUquadric, baseRadius, topRadius, height: TGLdouble,
|
proc TessNormal*(tess: PGLUtesselator, x, y, z: GLdouble)
|
||||||
slices, stacks: TGLint){.dynlib: dllname,
|
proc TessCallback*(tess: PGLUtesselator, which: GLenum, fn: Callback)
|
||||||
importc: "gluCylinder".}
|
proc GetTessProperty*(tess: PGLUtesselator, which: GLenum, value: ptr GLdouble)
|
||||||
proc gluDisk*(qobj: PGLUquadric, innerRadius, outerRadius: TGLdouble,
|
proc NewNurbsRenderer*(): PGLUnurbs
|
||||||
slices, loops: TGLint){.dynlib: dllname, importc: "gluDisk".}
|
proc DeleteNurbsRenderer*(nobj: PGLUnurbs)
|
||||||
proc gluPartialDisk*(qobj: PGLUquadric, innerRadius, outerRadius: TGLdouble,
|
proc BeginSurface*(nobj: PGLUnurbs)
|
||||||
slices, loops: TGLint, startAngle, sweepAngle: TGLdouble){.
|
proc BeginCurve*(nobj: PGLUnurbs)
|
||||||
dynlib: dllname, importc: "gluPartialDisk".}
|
proc EndCurve*(nobj: PGLUnurbs)
|
||||||
proc gluSphere*(qobj: PGLuquadric, radius: TGLdouble, slices, stacks: TGLint){.
|
proc EndSurface*(nobj: PGLUnurbs)
|
||||||
dynlib: dllname, importc: "gluSphere".}
|
proc BeginTrim*(nobj: PGLUnurbs)
|
||||||
proc gluQuadricCallback*(qobj: PGLUquadric, which: TGLenum, fn: TCallBack){.
|
proc EndTrim*(nobj: PGLUnurbs)
|
||||||
dynlib: dllname, importc: "gluQuadricCallback".}
|
proc PwlCurve*(nobj: PGLUnurbs, count: GLint, aarray: ptr GLfloat,
|
||||||
proc gluNewTess*(): PGLUtesselator{.dynlib: dllname, importc: "gluNewTess".}
|
stride: GLint, atype: GLenum)
|
||||||
proc gluDeleteTess*(tess: PGLUtesselator){.dynlib: dllname,
|
proc NurbsCurve*(nobj: PGLUnurbs, nknots: GLint, knot: ptr GLfloat,
|
||||||
importc: "gluDeleteTess".}
|
stride: GLint, ctlarray: ptr GLfloat, order: GLint,
|
||||||
proc gluTessBeginPolygon*(tess: PGLUtesselator, polygon_data: pointer){.
|
atype: GLenum)
|
||||||
dynlib: dllname, importc: "gluTessBeginPolygon".}
|
proc NurbsSurface*(nobj: PGLUnurbs, sknot_count: GLint, sknot: ptr GLfloat,
|
||||||
proc gluTessBeginContour*(tess: PGLUtesselator){.dynlib: dllname,
|
tknot_count: GLint, tknot: ptr GLfloat,
|
||||||
importc: "gluTessBeginContour".}
|
s_stride, t_stride: GLint, ctlarray: ptr GLfloat,
|
||||||
proc gluTessVertex*(tess: PGLUtesselator, coords: var T3dArray, data: pointer){.
|
sorder, torder: GLint, atype: GLenum)
|
||||||
dynlib: dllname, importc: "gluTessVertex".}
|
proc LoadSamplingMatrices*(nobj: PGLUnurbs,
|
||||||
proc gluTessEndContour*(tess: PGLUtesselator){.dynlib: dllname,
|
modelMatrix, projMatrix: var c16dArray,
|
||||||
importc: "gluTessEndContour".}
|
viewport: var ViewPortArray)
|
||||||
proc gluTessEndPolygon*(tess: PGLUtesselator){.dynlib: dllname,
|
proc NurbsProperty*(nobj: PGLUnurbs, aproperty: GLenum, value: GLfloat)
|
||||||
importc: "gluTessEndPolygon".}
|
proc GetNurbsProperty*(nobj: PGLUnurbs, aproperty: GLenum, value: ptr GLfloat)
|
||||||
proc gluTessProperty*(tess: PGLUtesselator, which: TGLenum, value: TGLdouble){.
|
proc NurbsCallback*(nobj: PGLUnurbs, which: GLenum, fn: Callback)
|
||||||
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: TGLenum) # gluTessCallback
|
GLUquadricErrorProc* = proc (p: GLenum) # gluTessCallback
|
||||||
GLUtessBeginProc* = proc (p: TGLenum)
|
GLUtessBeginProc* = proc (p: GLenum)
|
||||||
GLUtessEdgeFlagProc* = proc (p: TGLboolean)
|
GLUtessEdgeFlagProc* = proc (p: GLboolean)
|
||||||
GLUtessVertexProc* = proc (p: pointer)
|
GLUtessVertexProc* = proc (p: pointer)
|
||||||
GLUtessEndProc* = proc ()
|
GLUtessEndProc* = proc ()
|
||||||
GLUtessErrorProc* = proc (p: TGLenum)
|
GLUtessErrorProc* = proc (p: GLenum)
|
||||||
GLUtessCombineProc* = proc (p1: var T3dArray, p2: T4pArray, p3: T4fArray,
|
GLUtessCombineProc* = proc (p1: var c3dArray, p2: c4pArray, p3: c4fArray,
|
||||||
p4: ptr pointer)
|
p4: ptr pointer)
|
||||||
GLUtessBeginDataProc* = proc (p1: TGLenum, p2: pointer)
|
GLUtessBeginDataProc* = proc (p1: GLenum, p2: pointer)
|
||||||
GLUtessEdgeFlagDataProc* = proc (p1: TGLboolean, p2: pointer)
|
GLUtessEdgeFlagDataProc* = proc (p1: GLboolean, p2: pointer)
|
||||||
GLUtessVertexDataProc* = proc (p1, p2: pointer)
|
GLUtessVertexDataProc* = proc (p1, p2: pointer)
|
||||||
GLUtessEndDataProc* = proc (p: pointer)
|
GLUtessEndDataProc* = proc (p: pointer)
|
||||||
GLUtessErrorDataProc* = proc (p1: TGLenum, p2: pointer)
|
GLUtessErrorDataProc* = proc (p1: GLenum, p2: pointer)
|
||||||
GLUtessCombineDataProc* = proc (p1: var T3dArray, p2: var T4pArray,
|
GLUtessCombineDataProc* = proc (p1: var c3dArray, p2: var c4pArray,
|
||||||
p3: var T4fArray, p4: ptr pointer, p5: pointer) #
|
p3: var c4fArray, p4: ptr pointer, p5: pointer) #
|
||||||
GLUnurbsErrorProc* = proc (p: TGLenum) #*** Generic constants ****/
|
GLUnurbsErrorProc* = proc (p: GLenum) #*** Generic constants ****/
|
||||||
|
|
||||||
const # Version
|
const # Version
|
||||||
GLU_VERSION_1_1* = 1
|
VERSION_1_1* = 1
|
||||||
GLU_VERSION_1_2* = 1 # Errors: (return value 0 = no error)
|
VERSION_1_2* = 1 # Errors: (return value 0 = no error)
|
||||||
GLU_INVALID_ENUM* = 100900
|
INVALID_ENUM* = 100900
|
||||||
GLU_INVALID_VALUE* = 100901
|
INVALID_VALUE* = 100901
|
||||||
GLU_OUT_OF_MEMORY* = 100902
|
OUT_OF_MEMORY* = 100902
|
||||||
GLU_INCOMPATIBLE_GL_VERSION* = 100903 # StringName
|
INCOMPATIBLE_GL_VERSION* = 100903 # StringName
|
||||||
GLU_VERSION* = 100800
|
VERSION* = 100800
|
||||||
GLU_EXTENSIONS* = 100801 # Boolean
|
EXTENSIONS* = 100801 # Boolean
|
||||||
GLU_TRUE* = GL_TRUE
|
TRUE* = opengl.TRUE
|
||||||
GLU_FALSE* = GL_FALSE #*** Quadric constants ****/
|
FALSE* = opengl.FALSE #*** Quadric constants ****/
|
||||||
# QuadricNormal
|
# QuadricNormal
|
||||||
GLU_SMOOTH* = 100000
|
SMOOTH* = 100000
|
||||||
GLU_FLAT* = 100001
|
FLAT* = 100001
|
||||||
GLU_NONE* = 100002 # QuadricDrawStyle
|
NONE* = 100002 # QuadricDrawStyle
|
||||||
GLU_POINT* = 100010
|
POINT* = 100010
|
||||||
GLU_LINE* = 100011
|
LINE* = 100011
|
||||||
GLU_FILL* = 100012
|
FILL* = 100012
|
||||||
GLU_SILHOUETTE* = 100013 # QuadricOrientation
|
SILHOUETTE* = 100013 # QuadricOrientation
|
||||||
GLU_OUTSIDE* = 100020
|
OUTSIDE* = 100020
|
||||||
GLU_INSIDE* = 100021 # Callback types:
|
INSIDE* = 100021 # Callback types:
|
||||||
# GLU_ERROR = 100103;
|
# ERROR = 100103;
|
||||||
#*** Tesselation constants ****/
|
#*** Tesselation constants ****/
|
||||||
GLU_TESS_MAX_COORD* = 1.00000e+150 # TessProperty
|
TESS_MAX_COORD* = 1.00000e+150 # TessProperty
|
||||||
GLU_TESS_WINDING_RULE* = 100140
|
TESS_WINDING_RULE* = 100140
|
||||||
GLU_TESS_BOUNDARY_ONLY* = 100141
|
TESS_BOUNDARY_ONLY* = 100141
|
||||||
GLU_TESS_TOLERANCE* = 100142 # TessWinding
|
TESS_TOLERANCE* = 100142 # TessWinding
|
||||||
GLU_TESS_WINDING_ODD* = 100130
|
TESS_WINDING_ODD* = 100130
|
||||||
GLU_TESS_WINDING_NONZERO* = 100131
|
TESS_WINDING_NONZERO* = 100131
|
||||||
GLU_TESS_WINDING_POSITIVE* = 100132
|
TESS_WINDING_POSITIVE* = 100132
|
||||||
GLU_TESS_WINDING_NEGATIVE* = 100133
|
TESS_WINDING_NEGATIVE* = 100133
|
||||||
GLU_TESS_WINDING_ABS_GEQ_TWO* = 100134 # TessCallback
|
TESS_WINDING_ABS_GEQ_TWO* = 100134 # TessCallback
|
||||||
GLU_TESS_BEGIN* = 100100 # void (CALLBACK*)(TGLenum type)
|
TESS_BEGIN* = 100100 # void (CALLBACK*)(GLenum type)
|
||||||
constGLU_TESS_VERTEX* = 100101 # void (CALLBACK*)(void *data)
|
constTESS_VERTEX* = 100101 # void (CALLBACK*)(void *data)
|
||||||
GLU_TESS_END* = 100102 # void (CALLBACK*)(void)
|
TESS_END* = 100102 # void (CALLBACK*)(void)
|
||||||
GLU_TESS_ERROR* = 100103 # void (CALLBACK*)(TGLenum errno)
|
TESS_ERROR* = 100103 # void (CALLBACK*)(GLenum errno)
|
||||||
GLU_TESS_EDGE_FLAG* = 100104 # void (CALLBACK*)(TGLboolean boundaryEdge)
|
TESS_EDGE_FLAG* = 100104 # void (CALLBACK*)(GLboolean boundaryEdge)
|
||||||
GLU_TESS_COMBINE* = 100105 # void (CALLBACK*)(TGLdouble coords[3],
|
TESS_COMBINE* = 100105 # void (CALLBACK*)(GLdouble coords[3],
|
||||||
# void *data[4],
|
# void *data[4],
|
||||||
# TGLfloat weight[4],
|
# GLfloat weight[4],
|
||||||
# void **dataOut)
|
# void **dataOut)
|
||||||
GLU_TESS_BEGIN_DATA* = 100106 # void (CALLBACK*)(TGLenum type,
|
TESS_BEGIN_DATA* = 100106 # void (CALLBACK*)(GLenum type,
|
||||||
# void *polygon_data)
|
# void *polygon_data)
|
||||||
GLU_TESS_VERTEX_DATA* = 100107 # void (CALLBACK*)(void *data,
|
TESS_VERTEX_DATA* = 100107 # void (CALLBACK*)(void *data,
|
||||||
# void *polygon_data)
|
# void *polygon_data)
|
||||||
GLU_TESS_END_DATA* = 100108 # void (CALLBACK*)(void *polygon_data)
|
TESS_END_DATA* = 100108 # void (CALLBACK*)(void *polygon_data)
|
||||||
GLU_TESS_ERROR_DATA* = 100109 # void (CALLBACK*)(TGLenum errno,
|
TESS_ERROR_DATA* = 100109 # void (CALLBACK*)(GLenum errno,
|
||||||
# void *polygon_data)
|
# void *polygon_data)
|
||||||
GLU_TESS_EDGE_FLAG_DATA* = 100110 # void (CALLBACK*)(TGLboolean boundaryEdge,
|
TESS_EDGE_FLAG_DATA* = 100110 # void (CALLBACK*)(GLboolean boundaryEdge,
|
||||||
# void *polygon_data)
|
# void *polygon_data)
|
||||||
GLU_TESS_COMBINE_DATA* = 100111 # void (CALLBACK*)(TGLdouble coords[3],
|
TESS_COMBINE_DATA* = 100111 # void (CALLBACK*)(GLdouble coords[3],
|
||||||
# void *data[4],
|
# void *data[4],
|
||||||
# TGLfloat weight[4],
|
# GLfloat weight[4],
|
||||||
# void **dataOut,
|
# void **dataOut,
|
||||||
# void *polygon_data)
|
# void *polygon_data)
|
||||||
# TessError
|
# TessError
|
||||||
GLU_TESS_ERROR1* = 100151
|
TESS_ERROR1* = 100151
|
||||||
GLU_TESS_ERROR2* = 100152
|
TESS_ERROR2* = 100152
|
||||||
GLU_TESS_ERROR3* = 100153
|
TESS_ERROR3* = 100153
|
||||||
GLU_TESS_ERROR4* = 100154
|
TESS_ERROR4* = 100154
|
||||||
GLU_TESS_ERROR5* = 100155
|
TESS_ERROR5* = 100155
|
||||||
GLU_TESS_ERROR6* = 100156
|
TESS_ERROR6* = 100156
|
||||||
GLU_TESS_ERROR7* = 100157
|
TESS_ERROR7* = 100157
|
||||||
GLU_TESS_ERROR8* = 100158
|
TESS_ERROR8* = 100158
|
||||||
GLU_TESS_MISSING_BEGIN_POLYGON* = GLU_TESS_ERROR1
|
TESS_MISSING_BEGIN_POLYGON* = TESS_ERROR1
|
||||||
GLU_TESS_MISSING_BEGIN_CONTOUR* = GLU_TESS_ERROR2
|
TESS_MISSING_BEGIN_CONTOUR* = TESS_ERROR2
|
||||||
GLU_TESS_MISSING_END_POLYGON* = GLU_TESS_ERROR3
|
TESS_MISSING_END_POLYGON* = TESS_ERROR3
|
||||||
GLU_TESS_MISSING_END_CONTOUR* = GLU_TESS_ERROR4
|
TESS_MISSING_END_CONTOUR* = TESS_ERROR4
|
||||||
GLU_TESS_COORD_TOO_LARGE* = GLU_TESS_ERROR5
|
TESS_COORD_TOO_LARGE* = TESS_ERROR5
|
||||||
GLU_TESS_NEED_COMBINE_CALLBACK* = GLU_TESS_ERROR6 #*** NURBS constants ****/
|
TESS_NEED_COMBINE_CALLBACK* = TESS_ERROR6 #*** NURBS constants ****/
|
||||||
# NurbsProperty
|
# NurbsProperty
|
||||||
GLU_AUTO_LOAD_MATRIX* = 100200
|
AUTO_LOAD_MATRIX* = 100200
|
||||||
GLU_CULLING* = 100201
|
CULLING* = 100201
|
||||||
GLU_SAMPLING_TOLERANCE* = 100203
|
SAMPLING_TOLERANCE* = 100203
|
||||||
GLU_DISPLAY_MODE* = 100204
|
DISPLAY_MODE* = 100204
|
||||||
GLU_PARAMETRIC_TOLERANCE* = 100202
|
PARAMETRIC_TOLERANCE* = 100202
|
||||||
GLU_SAMPLING_METHOD* = 100205
|
SAMPLING_METHOD* = 100205
|
||||||
GLU_U_STEP* = 100206
|
U_STEP* = 100206
|
||||||
GLU_V_STEP* = 100207 # NurbsSampling
|
V_STEP* = 100207 # NurbsSampling
|
||||||
GLU_PATH_LENGTH* = 100215
|
PATH_LENGTH* = 100215
|
||||||
GLU_PARAMETRIC_ERROR* = 100216
|
PARAMETRIC_ERROR* = 100216
|
||||||
GLU_DOMAIN_DISTANCE* = 100217 # NurbsTrim
|
DOMAIN_DISTANCE* = 100217 # NurbsTrim
|
||||||
GLU_MAP1_TRIM_2* = 100210
|
MAP1_TRIM_2* = 100210
|
||||||
GLU_MAP1_TRIM_3* = 100211 # NurbsDisplay
|
MAP1_TRIM_3* = 100211 # NurbsDisplay
|
||||||
# GLU_FILL = 100012;
|
# FILL = 100012;
|
||||||
GLU_OUTLINE_POLYGON* = 100240
|
OUTLINE_POLYGON* = 100240
|
||||||
GLU_OUTLINE_PATCH* = 100241 # NurbsCallback
|
OUTLINE_PATCH* = 100241 # NurbsCallback
|
||||||
# GLU_ERROR = 100103;
|
# ERROR = 100103;
|
||||||
# NurbsErrors
|
# NurbsErrors
|
||||||
GLU_NURBS_ERROR1* = 100251
|
NURBS_ERROR1* = 100251
|
||||||
GLU_NURBS_ERROR2* = 100252
|
NURBS_ERROR2* = 100252
|
||||||
GLU_NURBS_ERROR3* = 100253
|
NURBS_ERROR3* = 100253
|
||||||
GLU_NURBS_ERROR4* = 100254
|
NURBS_ERROR4* = 100254
|
||||||
GLU_NURBS_ERROR5* = 100255
|
NURBS_ERROR5* = 100255
|
||||||
GLU_NURBS_ERROR6* = 100256
|
NURBS_ERROR6* = 100256
|
||||||
GLU_NURBS_ERROR7* = 100257
|
NURBS_ERROR7* = 100257
|
||||||
GLU_NURBS_ERROR8* = 100258
|
NURBS_ERROR8* = 100258
|
||||||
GLU_NURBS_ERROR9* = 100259
|
NURBS_ERROR9* = 100259
|
||||||
GLU_NURBS_ERROR10* = 100260
|
NURBS_ERROR10* = 100260
|
||||||
GLU_NURBS_ERROR11* = 100261
|
NURBS_ERROR11* = 100261
|
||||||
GLU_NURBS_ERROR12* = 100262
|
NURBS_ERROR12* = 100262
|
||||||
GLU_NURBS_ERROR13* = 100263
|
NURBS_ERROR13* = 100263
|
||||||
GLU_NURBS_ERROR14* = 100264
|
NURBS_ERROR14* = 100264
|
||||||
GLU_NURBS_ERROR15* = 100265
|
NURBS_ERROR15* = 100265
|
||||||
GLU_NURBS_ERROR16* = 100266
|
NURBS_ERROR16* = 100266
|
||||||
GLU_NURBS_ERROR17* = 100267
|
NURBS_ERROR17* = 100267
|
||||||
GLU_NURBS_ERROR18* = 100268
|
NURBS_ERROR18* = 100268
|
||||||
GLU_NURBS_ERROR19* = 100269
|
NURBS_ERROR19* = 100269
|
||||||
GLU_NURBS_ERROR20* = 100270
|
NURBS_ERROR20* = 100270
|
||||||
GLU_NURBS_ERROR21* = 100271
|
NURBS_ERROR21* = 100271
|
||||||
GLU_NURBS_ERROR22* = 100272
|
NURBS_ERROR22* = 100272
|
||||||
GLU_NURBS_ERROR23* = 100273
|
NURBS_ERROR23* = 100273
|
||||||
GLU_NURBS_ERROR24* = 100274
|
NURBS_ERROR24* = 100274
|
||||||
GLU_NURBS_ERROR25* = 100275
|
NURBS_ERROR25* = 100275
|
||||||
GLU_NURBS_ERROR26* = 100276
|
NURBS_ERROR26* = 100276
|
||||||
GLU_NURBS_ERROR27* = 100277
|
NURBS_ERROR27* = 100277
|
||||||
GLU_NURBS_ERROR28* = 100278
|
NURBS_ERROR28* = 100278
|
||||||
GLU_NURBS_ERROR29* = 100279
|
NURBS_ERROR29* = 100279
|
||||||
GLU_NURBS_ERROR30* = 100280
|
NURBS_ERROR30* = 100280
|
||||||
GLU_NURBS_ERROR31* = 100281
|
NURBS_ERROR31* = 100281
|
||||||
GLU_NURBS_ERROR32* = 100282
|
NURBS_ERROR32* = 100282
|
||||||
GLU_NURBS_ERROR33* = 100283
|
NURBS_ERROR33* = 100283
|
||||||
GLU_NURBS_ERROR34* = 100284
|
NURBS_ERROR34* = 100284
|
||||||
GLU_NURBS_ERROR35* = 100285
|
NURBS_ERROR35* = 100285
|
||||||
GLU_NURBS_ERROR36* = 100286
|
NURBS_ERROR36* = 100286
|
||||||
GLU_NURBS_ERROR37* = 100287 #*** Backwards compatibility for old tesselator ****/
|
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!
|
||||||
GLU_CW* = 100120
|
CW* = 100120
|
||||||
GLU_CCW* = 100121
|
CCW* = 100121
|
||||||
GLU_INTERIOR* = 100122
|
INTERIOR* = 100122
|
||||||
GLU_EXTERIOR* = 100123
|
EXTERIOR* = 100123
|
||||||
GLU_UNKNOWN* = 100124 # Names without "TESS_" prefix
|
UNKNOWN* = 100124 # Names without "TESS_" prefix
|
||||||
GLU_BEGIN* = GLU_TESS_BEGIN
|
BEGIN* = TESS_BEGIN
|
||||||
GLU_VERTEX* = constGLU_TESS_VERTEX
|
VERTEX* = constTESS_VERTEX
|
||||||
GLU_END* = GLU_TESS_END
|
END* = TESS_END
|
||||||
GLU_ERROR* = GLU_TESS_ERROR
|
ERROR* = TESS_ERROR
|
||||||
GLU_EDGE_FLAG* = GLU_TESS_EDGE_FLAG
|
EDGE_FLAG* = TESS_EDGE_FLAG
|
||||||
|
|
||||||
{.pop.}
|
{.pop.}
|
||||||
# implementation
|
# implementation
|
||||||
|
|
|
||||||
620
src/glut.nim
620
src/glut.nim
|
|
@ -29,345 +29,353 @@ else:
|
||||||
const
|
const
|
||||||
dllname = "libglut.so.3"
|
dllname = "libglut.so.3"
|
||||||
type
|
type
|
||||||
TGlutVoidCallback* = proc (){.cdecl.}
|
VoidCallback* = proc (){.cdecl.}
|
||||||
TGlut1IntCallback* = proc (value: cint){.cdecl.}
|
OneIntCallback* = proc (value: cint){.cdecl.}
|
||||||
TGlut2IntCallback* = proc (v1, v2: cint){.cdecl.}
|
TwoIntCallback* = proc (v1, v2: cint){.cdecl.}
|
||||||
TGlut3IntCallback* = proc (v1, v2, v3: cint){.cdecl.}
|
ThreeIntCallback* = proc (v1, v2, v3: cint){.cdecl.}
|
||||||
TGlut4IntCallback* = proc (v1, v2, v3, v4: cint){.cdecl.}
|
FourIntCallback* = proc (v1, v2, v3, v4: cint){.cdecl.}
|
||||||
TGlut1Char2IntCallback* = proc (c: int8, v1, v2: cint){.cdecl.}
|
OneCharTwoIntCallback* = proc (c: int8, v1, v2: cint){.cdecl.}
|
||||||
TGlut1UInt3IntCallback* = proc (u, v1, v2, v3: cint){.cdecl.}
|
OneUIntThreeIntCallback* = 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
|
||||||
GLUT_API_VERSION* = 3
|
API_VERSION* = 3
|
||||||
GLUT_XLIB_IMPLEMENTATION* = 12 # Display mode bit masks.
|
XLIB_IMPLEMENTATION* = 12 # Display mode bit masks.
|
||||||
GLUT_RGB* = 0
|
RGB* = 0
|
||||||
GLUT_RGBA* = GLUT_RGB
|
RGBA* = RGB
|
||||||
GLUT_INDEX* = 1
|
INDEX* = 1
|
||||||
GLUT_SINGLE* = 0
|
SINGLE* = 0
|
||||||
GLUT_DOUBLE* = 2
|
DOUBLE* = 2
|
||||||
GLUT_ACCUM* = 4
|
ACCUM* = 4
|
||||||
GLUT_ALPHA* = 8
|
ALPHA* = 8
|
||||||
GLUT_DEPTH* = 16
|
DEPTH* = 16
|
||||||
GLUT_STENCIL* = 32
|
STENCIL* = 32
|
||||||
GLUT_MULTISAMPLE* = 128
|
MULTISAMPLE* = 128
|
||||||
GLUT_STEREO* = 256
|
STEREO* = 256
|
||||||
GLUT_LUMINANCE* = 512 # Mouse buttons.
|
LUMINANCE* = 512 # Mouse buttons.
|
||||||
GLUT_LEFT_BUTTON* = 0
|
LEFT_BUTTON* = 0
|
||||||
GLUT_MIDDLE_BUTTON* = 1
|
MIDDLE_BUTTON* = 1
|
||||||
GLUT_RIGHT_BUTTON* = 2 # Mouse button state.
|
RIGHT_BUTTON* = 2 # Mouse button state.
|
||||||
GLUT_DOWN* = 0
|
DOWN* = 0
|
||||||
GLUT_UP* = 1 # function keys
|
UP* = 1 # function keys
|
||||||
GLUT_KEY_F1* = 1
|
KEY_F1* = 1
|
||||||
GLUT_KEY_F2* = 2
|
KEY_F2* = 2
|
||||||
GLUT_KEY_F3* = 3
|
KEY_F3* = 3
|
||||||
GLUT_KEY_F4* = 4
|
KEY_F4* = 4
|
||||||
GLUT_KEY_F5* = 5
|
KEY_F5* = 5
|
||||||
GLUT_KEY_F6* = 6
|
KEY_F6* = 6
|
||||||
GLUT_KEY_F7* = 7
|
KEY_F7* = 7
|
||||||
GLUT_KEY_F8* = 8
|
KEY_F8* = 8
|
||||||
GLUT_KEY_F9* = 9
|
KEY_F9* = 9
|
||||||
GLUT_KEY_F10* = 10
|
KEY_F10* = 10
|
||||||
GLUT_KEY_F11* = 11
|
KEY_F11* = 11
|
||||||
GLUT_KEY_F12* = 12 # directional keys
|
KEY_F12* = 12 # directional keys
|
||||||
GLUT_KEY_LEFT* = 100
|
KEY_LEFT* = 100
|
||||||
GLUT_KEY_UP* = 101
|
KEY_UP* = 101
|
||||||
GLUT_KEY_RIGHT* = 102
|
KEY_RIGHT* = 102
|
||||||
GLUT_KEY_DOWN* = 103
|
KEY_DOWN* = 103
|
||||||
GLUT_KEY_PAGE_UP* = 104
|
KEY_PAGE_UP* = 104
|
||||||
GLUT_KEY_PAGE_DOWN* = 105
|
KEY_PAGE_DOWN* = 105
|
||||||
GLUT_KEY_HOME* = 106
|
KEY_HOME* = 106
|
||||||
GLUT_KEY_END* = 107
|
KEY_END* = 107
|
||||||
GLUT_KEY_INSERT* = 108 # Entry/exit state.
|
KEY_INSERT* = 108 # Entry/exit state.
|
||||||
GLUT_LEFT* = 0
|
LEFT* = 0
|
||||||
GLUT_ENTERED* = 1 # Menu usage state.
|
ENTERED* = 1 # Menu usage state.
|
||||||
GLUT_MENU_NOT_IN_USE* = 0
|
MENU_NOT_IN_USE* = 0
|
||||||
GLUT_MENU_IN_USE* = 1 # Visibility state.
|
MENU_IN_USE* = 1 # Visibility state.
|
||||||
GLUT_NOT_VISIBLE* = 0
|
NOT_VISIBLE* = 0
|
||||||
GLUT_VISIBLE* = 1 # Window status state.
|
VISIBLE* = 1 # Window status state.
|
||||||
GLUT_HIDDEN* = 0
|
HIDDEN* = 0
|
||||||
GLUT_FULLY_RETAINED* = 1
|
FULLY_RETAINED* = 1
|
||||||
GLUT_PARTIALLY_RETAINED* = 2
|
PARTIALLY_RETAINED* = 2
|
||||||
GLUT_FULLY_COVERED* = 3 # Color index component selection values.
|
FULLY_COVERED* = 3 # Color index component selection values.
|
||||||
GLUT_RED* = 0
|
RED* = 0
|
||||||
GLUT_GREEN* = 1
|
GREEN* = 1
|
||||||
GLUT_BLUE* = 2 # Layers for use.
|
BLUE* = 2 # Layers for use.
|
||||||
GLUT_NORMAL* = 0
|
NORMAL* = 0
|
||||||
GLUT_OVERLAY* = 1
|
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).
|
||||||
GLUT_STROKE_ROMAN* = cast[Pointer](0)
|
STROKE_ROMAN* = cast[pointer](0)
|
||||||
GLUT_STROKE_MONO_ROMAN* = cast[Pointer](1) # Bitmap font constants (use these in GLUT program).
|
STROKE_MONO_ROMAN* = cast[pointer](1) # Bitmap font constants (use these in GLUT program).
|
||||||
GLUT_BITMAP_9_BY_15* = cast[Pointer](2)
|
BITMAP_9_BY_15* = cast[pointer](2)
|
||||||
GLUT_BITMAP_8_BY_13* = cast[Pointer](3)
|
BITMAP_8_BY_13* = cast[pointer](3)
|
||||||
GLUT_BITMAP_TIMES_ROMAN_10* = cast[Pointer](4)
|
BITMAP_TIMES_ROMAN_10* = cast[pointer](4)
|
||||||
GLUT_BITMAP_TIMES_ROMAN_24* = cast[Pointer](5)
|
BITMAP_TIMES_ROMAN_24* = cast[pointer](5)
|
||||||
GLUT_BITMAP_HELVETICA_10* = cast[Pointer](6)
|
BITMAP_HELVETICA_10* = cast[pointer](6)
|
||||||
GLUT_BITMAP_HELVETICA_12* = cast[Pointer](7)
|
BITMAP_HELVETICA_12* = cast[pointer](7)
|
||||||
GLUT_BITMAP_HELVETICA_18* = cast[Pointer](8)
|
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).
|
||||||
GLUT_STROKE_ROMAN*: Pointer
|
STROKE_ROMAN*: pointer
|
||||||
GLUT_STROKE_MONO_ROMAN*: Pointer # Bitmap font constants (use these in GLUT program).
|
STROKE_MONO_ROMAN*: pointer # Bitmap font constants (use these in GLUT program).
|
||||||
GLUT_BITMAP_9_BY_15*: Pointer
|
BITMAP_9_BY_15*: pointer
|
||||||
GLUT_BITMAP_8_BY_13*: Pointer
|
BITMAP_8_BY_13*: pointer
|
||||||
GLUT_BITMAP_TIMES_ROMAN_10*: Pointer
|
BITMAP_TIMES_ROMAN_10*: pointer
|
||||||
GLUT_BITMAP_TIMES_ROMAN_24*: Pointer
|
BITMAP_TIMES_ROMAN_24*: pointer
|
||||||
GLUT_BITMAP_HELVETICA_10*: Pointer
|
BITMAP_HELVETICA_10*: pointer
|
||||||
GLUT_BITMAP_HELVETICA_12*: Pointer
|
BITMAP_HELVETICA_12*: pointer
|
||||||
GLUT_BITMAP_HELVETICA_18*: Pointer
|
BITMAP_HELVETICA_18*: pointer
|
||||||
const # glutGet parameters.
|
const # glutGet parameters.
|
||||||
GLUT_WINDOW_X* = 100
|
WINDOW_X* = 100
|
||||||
GLUT_WINDOW_Y* = 101
|
WINDOW_Y* = 101
|
||||||
GLUT_WINDOW_WIDTH* = 102
|
WINDOW_WIDTH* = 102
|
||||||
GLUT_WINDOW_HEIGHT* = 103
|
WINDOW_HEIGHT* = 103
|
||||||
GLUT_WINDOW_BUFFER_SIZE* = 104
|
WINDOW_BUFFER_SIZE* = 104
|
||||||
GLUT_WINDOW_STENCIL_SIZE* = 105
|
WINDOW_STENCIL_SIZE* = 105
|
||||||
GLUT_WINDOW_DEPTH_SIZE* = 106
|
WINDOW_DEPTH_SIZE* = 106
|
||||||
GLUT_WINDOW_RED_SIZE* = 107
|
WINDOW_RED_SIZE* = 107
|
||||||
GLUT_WINDOW_GREEN_SIZE* = 108
|
WINDOW_GREEN_SIZE* = 108
|
||||||
GLUT_WINDOW_BLUE_SIZE* = 109
|
WINDOW_BLUE_SIZE* = 109
|
||||||
GLUT_WINDOW_ALPHA_SIZE* = 110
|
WINDOW_ALPHA_SIZE* = 110
|
||||||
GLUT_WINDOW_ACCUM_RED_SIZE* = 111
|
WINDOW_ACCUM_RED_SIZE* = 111
|
||||||
GLUT_WINDOW_ACCUM_GREEN_SIZE* = 112
|
WINDOW_ACCUM_GREEN_SIZE* = 112
|
||||||
GLUT_WINDOW_ACCUM_BLUE_SIZE* = 113
|
WINDOW_ACCUM_BLUE_SIZE* = 113
|
||||||
GLUT_WINDOW_ACCUM_ALPHA_SIZE* = 114
|
WINDOW_ACCUM_ALPHA_SIZE* = 114
|
||||||
GLUT_WINDOW_DOUBLEBUFFER* = 115
|
WINDOW_DOUBLEBUFFER* = 115
|
||||||
GLUT_WINDOW_RGBA* = 116
|
WINDOW_RGBA* = 116
|
||||||
GLUT_WINDOW_PARENT* = 117
|
WINDOW_PARENT* = 117
|
||||||
GLUT_WINDOW_NUM_CHILDREN* = 118
|
WINDOW_NUM_CHILDREN* = 118
|
||||||
GLUT_WINDOW_COLORMAP_SIZE* = 119
|
WINDOW_COLORMAP_SIZE* = 119
|
||||||
GLUT_WINDOW_NUM_SAMPLES* = 120
|
WINDOW_NUM_SAMPLES* = 120
|
||||||
GLUT_WINDOW_STEREO* = 121
|
WINDOW_STEREO* = 121
|
||||||
GLUT_WINDOW_CURSOR* = 122
|
WINDOW_CURSOR* = 122
|
||||||
GLUT_SCREEN_WIDTH* = 200
|
SCREEN_WIDTH* = 200
|
||||||
GLUT_SCREEN_HEIGHT* = 201
|
SCREEN_HEIGHT* = 201
|
||||||
GLUT_SCREEN_WIDTH_MM* = 202
|
SCREEN_WIDTH_MM* = 202
|
||||||
GLUT_SCREEN_HEIGHT_MM* = 203
|
SCREEN_HEIGHT_MM* = 203
|
||||||
GLUT_MENU_NUM_ITEMS* = 300
|
MENU_NUM_ITEMS* = 300
|
||||||
GLUT_DISPLAY_MODE_POSSIBLE* = 400
|
DISPLAY_MODE_POSSIBLE* = 400
|
||||||
GLUT_INIT_WINDOW_X* = 500
|
INIT_WINDOW_X* = 500
|
||||||
GLUT_INIT_WINDOW_Y* = 501
|
INIT_WINDOW_Y* = 501
|
||||||
GLUT_INIT_WINDOW_WIDTH* = 502
|
INIT_WINDOW_WIDTH* = 502
|
||||||
GLUT_INIT_WINDOW_HEIGHT* = 503
|
INIT_WINDOW_HEIGHT* = 503
|
||||||
constGLUT_INIT_DISPLAY_MODE* = 504
|
constINIT_DISPLAY_MODE* = 504
|
||||||
GLUT_ELAPSED_TIME* = 700
|
ELAPSED_TIME* = 700
|
||||||
GLUT_WINDOW_FORMAT_ID* = 123 # glutDeviceGet parameters.
|
WINDOW_FORMAT_ID* = 123 # glutDeviceGet parameters.
|
||||||
GLUT_HAS_KEYBOARD* = 600
|
HAS_KEYBOARD* = 600
|
||||||
GLUT_HAS_MOUSE* = 601
|
HAS_MOUSE* = 601
|
||||||
GLUT_HAS_SPACEBALL* = 602
|
HAS_SPACEBALL* = 602
|
||||||
GLUT_HAS_DIAL_AND_BUTTON_BOX* = 603
|
HAS_DIAL_AND_BUTTON_BOX* = 603
|
||||||
GLUT_HAS_TABLET* = 604
|
HAS_TABLET* = 604
|
||||||
GLUT_NUM_MOUSE_BUTTONS* = 605
|
NUM_MOUSE_BUTTONS* = 605
|
||||||
GLUT_NUM_SPACEBALL_BUTTONS* = 606
|
NUM_SPACEBALL_BUTTONS* = 606
|
||||||
GLUT_NUM_BUTTON_BOX_BUTTONS* = 607
|
NUM_BUTTON_BOX_BUTTONS* = 607
|
||||||
GLUT_NUM_DIALS* = 608
|
NUM_DIALS* = 608
|
||||||
GLUT_NUM_TABLET_BUTTONS* = 609
|
NUM_TABLET_BUTTONS* = 609
|
||||||
GLUT_DEVICE_IGNORE_KEY_REPEAT* = 610
|
DEVICE_IGNORE_KEY_REPEAT* = 610
|
||||||
GLUT_DEVICE_KEY_REPEAT* = 611
|
DEVICE_KEY_REPEAT* = 611
|
||||||
GLUT_HAS_JOYSTICK* = 612
|
HAS_JOYSTICK* = 612
|
||||||
GLUT_OWNS_JOYSTICK* = 613
|
OWNS_JOYSTICK* = 613
|
||||||
GLUT_JOYSTICK_BUTTONS* = 614
|
JOYSTICK_BUTTONS* = 614
|
||||||
GLUT_JOYSTICK_AXES* = 615
|
JOYSTICK_AXES* = 615
|
||||||
GLUT_JOYSTICK_POLL_RATE* = 616 # glutLayerGet parameters.
|
JOYSTICK_POLL_RATE* = 616 # glutLayerGet parameters.
|
||||||
GLUT_OVERLAY_POSSIBLE* = 800
|
OVERLAY_POSSIBLE* = 800
|
||||||
GLUT_LAYER_IN_USE* = 801
|
LAYER_IN_USE* = 801
|
||||||
GLUT_HAS_OVERLAY* = 802
|
HAS_OVERLAY* = 802
|
||||||
GLUT_TRANSPARENT_INDEX* = 803
|
TRANSPARENT_INDEX* = 803
|
||||||
GLUT_NORMAL_DAMAGED* = 804
|
NORMAL_DAMAGED* = 804
|
||||||
GLUT_OVERLAY_DAMAGED* = 805 # glutVideoResizeGet parameters.
|
OVERLAY_DAMAGED* = 805 # glutVideoResizeGet parameters.
|
||||||
GLUT_VIDEO_RESIZE_POSSIBLE* = 900
|
VIDEO_RESIZE_POSSIBLE* = 900
|
||||||
GLUT_VIDEO_RESIZE_IN_USE* = 901
|
VIDEO_RESIZE_IN_USE* = 901
|
||||||
GLUT_VIDEO_RESIZE_X_DELTA* = 902
|
VIDEO_RESIZE_X_DELTA* = 902
|
||||||
GLUT_VIDEO_RESIZE_Y_DELTA* = 903
|
VIDEO_RESIZE_Y_DELTA* = 903
|
||||||
GLUT_VIDEO_RESIZE_WIDTH_DELTA* = 904
|
VIDEO_RESIZE_WIDTH_DELTA* = 904
|
||||||
GLUT_VIDEO_RESIZE_HEIGHT_DELTA* = 905
|
VIDEO_RESIZE_HEIGHT_DELTA* = 905
|
||||||
GLUT_VIDEO_RESIZE_X* = 906
|
VIDEO_RESIZE_X* = 906
|
||||||
GLUT_VIDEO_RESIZE_Y* = 907
|
VIDEO_RESIZE_Y* = 907
|
||||||
GLUT_VIDEO_RESIZE_WIDTH* = 908
|
VIDEO_RESIZE_WIDTH* = 908
|
||||||
GLUT_VIDEO_RESIZE_HEIGHT* = 909 # glutGetModifiers return mask.
|
VIDEO_RESIZE_HEIGHT* = 909 # glutGetModifiers return mask.
|
||||||
GLUT_ACTIVE_SHIFT* = 1
|
ACTIVE_SHIFT* = 1
|
||||||
GLUT_ACTIVE_CTRL* = 2
|
ACTIVE_CTRL* = 2
|
||||||
GLUT_ACTIVE_ALT* = 4 # glutSetCursor parameters.
|
ACTIVE_ALT* = 4 # glutSetCursor parameters.
|
||||||
# Basic arrows.
|
# Basic arrows.
|
||||||
GLUT_CURSOR_RIGHT_ARROW* = 0
|
CURSOR_RIGHT_ARROW* = 0
|
||||||
GLUT_CURSOR_LEFT_ARROW* = 1 # Symbolic cursor shapes.
|
CURSOR_LEFT_ARROW* = 1 # Symbolic cursor shapes.
|
||||||
GLUT_CURSOR_INFO* = 2
|
CURSOR_INFO* = 2
|
||||||
GLUT_CURSOR_DESTROY* = 3
|
CURSOR_DESTROY* = 3
|
||||||
GLUT_CURSOR_HELP* = 4
|
CURSOR_HELP* = 4
|
||||||
GLUT_CURSOR_CYCLE* = 5
|
CURSOR_CYCLE* = 5
|
||||||
GLUT_CURSOR_SPRAY* = 6
|
CURSOR_SPRAY* = 6
|
||||||
GLUT_CURSOR_WAIT* = 7
|
CURSOR_WAIT* = 7
|
||||||
GLUT_CURSOR_TEXT* = 8
|
CURSOR_TEXT* = 8
|
||||||
GLUT_CURSOR_CROSSHAIR* = 9 # Directional cursors.
|
CURSOR_CROSSHAIR* = 9 # Directional cursors.
|
||||||
GLUT_CURSOR_UP_DOWN* = 10
|
CURSOR_UP_DOWN* = 10
|
||||||
GLUT_CURSOR_LEFT_RIGHT* = 11 # Sizing cursors.
|
CURSOR_LEFT_RIGHT* = 11 # Sizing cursors.
|
||||||
GLUT_CURSOR_TOP_SIDE* = 12
|
CURSOR_TOP_SIDE* = 12
|
||||||
GLUT_CURSOR_BOTTOM_SIDE* = 13
|
CURSOR_BOTTOM_SIDE* = 13
|
||||||
GLUT_CURSOR_LEFT_SIDE* = 14
|
CURSOR_LEFT_SIDE* = 14
|
||||||
GLUT_CURSOR_RIGHT_SIDE* = 15
|
CURSOR_RIGHT_SIDE* = 15
|
||||||
GLUT_CURSOR_TOP_LEFT_CORNER* = 16
|
CURSOR_TOP_LEFT_CORNER* = 16
|
||||||
GLUT_CURSOR_TOP_RIGHT_CORNER* = 17
|
CURSOR_TOP_RIGHT_CORNER* = 17
|
||||||
GLUT_CURSOR_BOTTOM_RIGHT_CORNER* = 18
|
CURSOR_BOTTOM_RIGHT_CORNER* = 18
|
||||||
GLUT_CURSOR_BOTTOM_LEFT_CORNER* = 19 # Inherit from parent window.
|
CURSOR_BOTTOM_LEFT_CORNER* = 19 # Inherit from parent window.
|
||||||
GLUT_CURSOR_INHERIT* = 100 # Blank cursor.
|
CURSOR_INHERIT* = 100 # Blank cursor.
|
||||||
GLUT_CURSOR_NONE* = 101 # Fullscreen crosshair (if available).
|
CURSOR_NONE* = 101 # Fullscreen crosshair (if available).
|
||||||
GLUT_CURSOR_FULL_CROSSHAIR* = 102 # GLUT device control sub-API.
|
CURSOR_FULL_CROSSHAIR* = 102 # GLUT device control sub-API.
|
||||||
# glutSetKeyRepeat modes.
|
# glutSetKeyRepeat modes.
|
||||||
GLUT_KEY_REPEAT_OFF* = 0
|
KEY_REPEAT_OFF* = 0
|
||||||
GLUT_KEY_REPEAT_ON* = 1
|
KEY_REPEAT_ON* = 1
|
||||||
GLUT_KEY_REPEAT_DEFAULT* = 2 # Joystick button masks.
|
KEY_REPEAT_DEFAULT* = 2 # Joystick button masks.
|
||||||
GLUT_JOYSTICK_BUTTON_A* = 1
|
JOYSTICK_BUTTON_A* = 1
|
||||||
GLUT_JOYSTICK_BUTTON_B* = 2
|
JOYSTICK_BUTTON_B* = 2
|
||||||
GLUT_JOYSTICK_BUTTON_C* = 4
|
JOYSTICK_BUTTON_C* = 4
|
||||||
GLUT_JOYSTICK_BUTTON_D* = 8 # GLUT game mode sub-API.
|
JOYSTICK_BUTTON_D* = 8 # GLUT game mode sub-API.
|
||||||
# glutGameModeGet.
|
# glutGameModeGet.
|
||||||
GLUT_GAME_MODE_ACTIVE* = 0
|
GAME_MODE_ACTIVE* = 0
|
||||||
GLUT_GAME_MODE_POSSIBLE* = 1
|
GAME_MODE_POSSIBLE* = 1
|
||||||
GLUT_GAME_MODE_WIDTH* = 2
|
GAME_MODE_WIDTH* = 2
|
||||||
GLUT_GAME_MODE_HEIGHT* = 3
|
GAME_MODE_HEIGHT* = 3
|
||||||
GLUT_GAME_MODE_PIXEL_DEPTH* = 4
|
GAME_MODE_PIXEL_DEPTH* = 4
|
||||||
GLUT_GAME_MODE_REFRESH_RATE* = 5
|
GAME_MODE_REFRESH_RATE* = 5
|
||||||
GLUT_GAME_MODE_DISPLAY_CHANGED* = 6 # GLUT initialization sub-API.
|
GAME_MODE_DISPLAY_CHANGED* = 6 # GLUT initialization sub-API.
|
||||||
|
|
||||||
{.push dynlib: dllname, importc.}
|
{.push cdecl, dynlib: dllname, importc: "glut$1".}
|
||||||
proc glutInit*(argcp: ptr cint, argv: pointer)
|
proc Init*(argcp: ptr cint, argv: pointer)
|
||||||
|
|
||||||
proc glutInit*() =
|
proc Init*() =
|
||||||
## 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 glutInitDisplayMode*(mode: int16)
|
proc InitDisplayMode*(mode: int16)
|
||||||
proc glutInitDisplayString*(str: cstring)
|
proc InitDisplayString*(str: cstring)
|
||||||
proc glutInitWindowPosition*(x, y: int)
|
proc InitWindowPosition*(x, y: int)
|
||||||
proc glutInitWindowSize*(width, height: int)
|
proc InitWindowSize*(width, height: int)
|
||||||
proc glutMainLoop*()
|
proc MainLoop*()
|
||||||
# GLUT window sub-API.
|
# GLUT window sub-API.
|
||||||
proc glutCreateWindow*(title: cstring): int
|
proc CreateWindow*(title: cstring): int
|
||||||
proc glutCreateSubWindow*(win, x, y, width, height: int): int
|
proc CreateSubWindow*(win, x, y, width, height: int): int
|
||||||
proc glutDestroyWindow*(win: int)
|
proc DestroyWindow*(win: int)
|
||||||
proc glutPostRedisplay*()
|
proc PostRedisplay*()
|
||||||
proc glutPostWindowRedisplay*(win: int)
|
proc PostWindowRedisplay*(win: int)
|
||||||
proc glutSwapBuffers*()
|
proc SwapBuffers*()
|
||||||
proc glutSetWindow*(win: int)
|
proc SetWindow*(win: int)
|
||||||
proc glutSetWindowTitle*(title: cstring)
|
proc SetWindowTitle*(title: cstring)
|
||||||
proc glutSetIconTitle*(title: cstring)
|
proc SetIconTitle*(title: cstring)
|
||||||
proc glutPositionWindow*(x, y: int)
|
proc PositionWindow*(x, y: int)
|
||||||
proc glutReshapeWindow*(width, height: int)
|
proc ReshapeWindow*(width, height: int)
|
||||||
proc glutPopWindow*()
|
proc PopWindow*()
|
||||||
proc glutPushWindow*()
|
proc PushWindow*()
|
||||||
proc glutIconifyWindow*()
|
proc IconifyWindow*()
|
||||||
proc glutShowWindow*()
|
proc ShowWindow*()
|
||||||
proc glutHideWindow*()
|
proc HideWindow*()
|
||||||
proc glutFullScreen*()
|
proc FullScreen*()
|
||||||
proc glutSetCursor*(cursor: int)
|
proc SetCursor*(cursor: int)
|
||||||
proc glutWarpPointer*(x, y: int)
|
proc Warppointer*(x, y: int)
|
||||||
# GLUT overlay sub-API.
|
# GLUT overlay sub-API.
|
||||||
proc glutEstablishOverlay*()
|
proc EstablishOverlay*()
|
||||||
proc glutRemoveOverlay*()
|
proc RemoveOverlay*()
|
||||||
proc glutUseLayer*(layer: TGLenum)
|
proc UseLayer*(layer: GLenum)
|
||||||
proc glutPostOverlayRedisplay*()
|
proc PostOverlayRedisplay*()
|
||||||
proc glutPostWindowOverlayRedisplay*(win: int)
|
proc PostWindowOverlayRedisplay*(win: int)
|
||||||
proc glutShowOverlay*()
|
proc ShowOverlay*()
|
||||||
proc glutHideOverlay*()
|
proc HideOverlay*()
|
||||||
# GLUT menu sub-API.
|
# GLUT menu sub-API.
|
||||||
proc glutCreateMenu*(callback: TGlut1IntCallback): int
|
proc CreateMenu*(callback: OneIntCallback): int
|
||||||
proc glutDestroyMenu*(menu: int)
|
proc DestroyMenu*(menu: int)
|
||||||
proc glutGetMenu*(): int
|
proc GetMenu*(): int
|
||||||
proc glutSetMenu*(menu: int)
|
proc SetMenu*(menu: int)
|
||||||
proc glutAddMenuEntry*(caption: cstring, value: int)
|
proc AddMenuEntry*(caption: cstring, value: int)
|
||||||
proc glutAddSubMenu*(caption: cstring, submenu: int)
|
proc AddSubMenu*(caption: cstring, submenu: int)
|
||||||
proc glutChangeToMenuEntry*(item: int, caption: cstring, value: int)
|
proc ChangeToMenuEntry*(item: int, caption: cstring, value: int)
|
||||||
proc glutChangeToSubMenu*(item: int, caption: cstring, submenu: int)
|
proc ChangeToSubMenu*(item: int, caption: cstring, submenu: int)
|
||||||
proc glutRemoveMenuItem*(item: int)
|
proc RemoveMenuItem*(item: int)
|
||||||
proc glutAttachMenu*(button: int)
|
proc AttachMenu*(button: int)
|
||||||
proc glutDetachMenu*(button: int)
|
proc DetachMenu*(button: int)
|
||||||
# GLUT window callback sub-API.
|
# GLUT window callback sub-API.
|
||||||
proc glutDisplayFunc*(f: TGlutVoidCallback)
|
proc DisplayFunc*(f: VoidCallback)
|
||||||
proc glutCloseFunc*(f: TGlutVoidCallback)
|
proc CloseFunc*(f: VoidCallback)
|
||||||
proc glutReshapeFunc*(f: TGlut2IntCallback)
|
proc ReshapeFunc*(f: TwoIntCallback)
|
||||||
proc glutKeyboardFunc*(f: TGlut1Char2IntCallback)
|
proc KeyboardFunc*(f: OneCharTwoIntCallback)
|
||||||
proc glutMouseFunc*(f: TGlut4IntCallback)
|
proc MouseFunc*(f: FourIntCallback)
|
||||||
proc glutMotionFunc*(f: TGlut2IntCallback)
|
proc MotionFunc*(f: TwoIntCallback)
|
||||||
proc glutPassiveMotionFunc*(f: TGlut2IntCallback)
|
proc PassiveMotionFunc*(f: TwoIntCallback)
|
||||||
proc glutEntryFunc*(f: TGlut1IntCallback)
|
proc EntryFunc*(f: OneIntCallback)
|
||||||
proc glutVisibilityFunc*(f: TGlut1IntCallback)
|
proc VisibilityFunc*(f: OneIntCallback)
|
||||||
proc glutIdleFunc*(f: TGlutVoidCallback)
|
proc IdleFunc*(f: VoidCallback)
|
||||||
proc glutTimerFunc*(millis: int16, f: TGlut1IntCallback, value: int)
|
proc TimerFunc*(millis: int16, f: OneIntCallback, value: int)
|
||||||
proc glutMenuStateFunc*(f: TGlut1IntCallback)
|
proc MenuStateFunc*(f: OneIntCallback)
|
||||||
proc glutSpecialFunc*(f: TGlut3IntCallback)
|
proc SpecialFunc*(f: ThreeIntCallback)
|
||||||
proc glutSpaceballMotionFunc*(f: TGlut3IntCallback)
|
proc SpaceballMotionFunc*(f: ThreeIntCallback)
|
||||||
proc glutSpaceballRotateFunc*(f: TGlut3IntCallback)
|
proc SpaceballRotateFunc*(f: ThreeIntCallback)
|
||||||
proc glutSpaceballButtonFunc*(f: TGlut2IntCallback)
|
proc SpaceballButtonFunc*(f: TwoIntCallback)
|
||||||
proc glutButtonBoxFunc*(f: TGlut2IntCallback)
|
proc ButtonBoxFunc*(f: TwoIntCallback)
|
||||||
proc glutDialsFunc*(f: TGlut2IntCallback)
|
proc DialsFunc*(f: TwoIntCallback)
|
||||||
proc glutTabletMotionFunc*(f: TGlut2IntCallback)
|
proc TabletMotionFunc*(f: TwoIntCallback)
|
||||||
proc glutTabletButtonFunc*(f: TGlut4IntCallback)
|
proc TabletButtonFunc*(f: FourIntCallback)
|
||||||
proc glutMenuStatusFunc*(f: TGlut3IntCallback)
|
proc MenuStatusFunc*(f: ThreeIntCallback)
|
||||||
proc glutOverlayDisplayFunc*(f: TGlutVoidCallback)
|
proc OverlayDisplayFunc*(f: VoidCallback)
|
||||||
proc glutWindowStatusFunc*(f: TGlut1IntCallback)
|
proc WindowStatusFunc*(f: OneIntCallback)
|
||||||
proc glutKeyboardUpFunc*(f: TGlut1Char2IntCallback)
|
proc KeyboardUpFunc*(f: OneCharTwoIntCallback)
|
||||||
proc glutSpecialUpFunc*(f: TGlut3IntCallback)
|
proc SpecialUpFunc*(f: ThreeIntCallback)
|
||||||
proc glutJoystickFunc*(f: TGlut1UInt3IntCallback, pollInterval: int)
|
proc JoystickFunc*(f: OneUIntThreeIntCallback, pollInterval: int)
|
||||||
# GLUT color index sub-API.
|
# GLUT color index sub-API.
|
||||||
proc glutSetColor*(cell: int, red, green, blue: TGLfloat)
|
proc SetColor*(cell: int, red, green, blue: GLfloat)
|
||||||
proc glutGetColor*(ndx, component: int): TGLfloat
|
proc GetColor*(ndx, component: int): GLfloat
|
||||||
proc glutCopyColormap*(win: int)
|
proc CopyColormap*(win: int)
|
||||||
# GLUT state retrieval sub-API.
|
# GLUT state retrieval sub-API.
|
||||||
proc glutGet*(t: TGLenum): int
|
proc Get*(t: GLenum): int
|
||||||
proc glutDeviceGet*(t: TGLenum): int
|
proc DeviceGet*(t: GLenum): int
|
||||||
# GLUT extension support sub-API
|
# GLUT extension support sub-API
|
||||||
proc glutGetModifiers*(): int
|
proc GetModifiers*(): int
|
||||||
proc glutLayerGet*(t: TGLenum): int
|
proc LayerGet*(t: GLenum): int
|
||||||
proc glutExtensionSupported*(name: cstring): int
|
proc ExtensionSupported*(name: cstring): int
|
||||||
# GLUT font sub-API
|
# GLUT font sub-API
|
||||||
proc glutBitmapCharacter*(font: pointer, character: int)
|
proc BitmapCharacter*(font: pointer, character: int)
|
||||||
proc glutBitmapWidth*(font: pointer, character: int): int
|
proc BitmapWidth*(font: pointer, character: int): int
|
||||||
proc glutStrokeCharacter*(font: pointer, character: int)
|
proc StrokeCharacter*(font: pointer, character: int)
|
||||||
proc glutStrokeWidth*(font: pointer, character: int): int
|
proc StrokeWidth*(font: pointer, character: int): int
|
||||||
proc glutBitmapLength*(font: pointer, str: cstring): int
|
proc BitmapLength*(font: pointer, str: cstring): int
|
||||||
proc glutStrokeLength*(font: pointer, str: cstring): int
|
proc StrokeLength*(font: pointer, str: cstring): int
|
||||||
# GLUT pre-built models sub-API
|
# GLUT pre-built models sub-API
|
||||||
proc glutWireSphere*(radius: TGLdouble, slices, stacks: TGLint)
|
proc WireSphere*(radius: GLdouble, slices, stacks: GLint)
|
||||||
proc glutSolidSphere*(radius: TGLdouble, slices, stacks: TGLint)
|
proc SolidSphere*(radius: GLdouble, slices, stacks: GLint)
|
||||||
proc glutWireCone*(base, height: TGLdouble, slices, stacks: TGLint)
|
proc WireCone*(base, height: GLdouble, slices, stacks: GLint)
|
||||||
proc glutSolidCone*(base, height: TGLdouble, slices, stacks: TGLint)
|
proc SolidCone*(base, height: GLdouble, slices, stacks: GLint)
|
||||||
proc glutWireCube*(size: TGLdouble)
|
proc WireCube*(size: GLdouble)
|
||||||
proc glutSolidCube*(size: TGLdouble)
|
proc SolidCube*(size: GLdouble)
|
||||||
proc glutWireTorus*(innerRadius, outerRadius: TGLdouble, sides, rings: TGLint)
|
proc WireTorus*(innerRadius, outerRadius: GLdouble, sides, rings: GLint)
|
||||||
proc glutSolidTorus*(innerRadius, outerRadius: TGLdouble, sides, rings: TGLint)
|
proc SolidTorus*(innerRadius, outerRadius: GLdouble, sides, rings: GLint)
|
||||||
proc glutWireDodecahedron*()
|
proc WireDodecahedron*()
|
||||||
proc glutSolidDodecahedron*()
|
proc SolidDodecahedron*()
|
||||||
proc glutWireTeapot*(size: TGLdouble)
|
proc WireTeapot*(size: GLdouble)
|
||||||
proc glutSolidTeapot*(size: TGLdouble)
|
proc SolidTeapot*(size: GLdouble)
|
||||||
proc glutWireOctahedron*()
|
proc WireOctahedron*()
|
||||||
proc glutSolidOctahedron*()
|
proc SolidOctahedron*()
|
||||||
proc glutWireTetrahedron*()
|
proc WireTetrahedron*()
|
||||||
proc glutSolidTetrahedron*()
|
proc SolidTetrahedron*()
|
||||||
proc glutWireIcosahedron*()
|
proc WireIcosahedron*()
|
||||||
proc glutSolidIcosahedron*()
|
proc SolidIcosahedron*()
|
||||||
# GLUT video resize sub-API.
|
# GLUT video resize sub-API.
|
||||||
proc glutVideoResizeGet*(param: TGLenum): int
|
proc VideoResizeGet*(param: GLenum): int
|
||||||
proc glutSetupVideoResizing*()
|
proc SetupVideoResizing*()
|
||||||
proc glutStopVideoResizing*()
|
proc StopVideoResizing*()
|
||||||
proc glutVideoResize*(x, y, width, height: int)
|
proc VideoResize*(x, y, width, height: int)
|
||||||
proc glutVideoPan*(x, y, width, height: int)
|
proc VideoPan*(x, y, width, height: int)
|
||||||
# GLUT debugging sub-API.
|
# GLUT debugging sub-API.
|
||||||
proc glutReportErrors*()
|
proc ReportErrors*()
|
||||||
# GLUT device control sub-API.
|
# GLUT device control sub-API.
|
||||||
proc glutIgnoreKeyRepeat*(ignore: int)
|
proc IgnoreKeyRepeat*(ignore: int)
|
||||||
proc glutSetKeyRepeat*(repeatMode: int)
|
proc SetKeyRepeat*(repeatMode: int)
|
||||||
proc glutForceJoystickFunc*()
|
proc ForceJoystickFunc*()
|
||||||
# GLUT game mode sub-API.
|
# GLUT game mode sub-API.
|
||||||
#example glutGameModeString('1280x1024:32@75');
|
#example glutGameModeString('1280x1024:32@75');
|
||||||
proc glutGameModeString*(AString: cstring)
|
proc GameModeString*(AString: cstring)
|
||||||
proc glutEnterGameMode*()
|
proc EnterGameMode*()
|
||||||
proc glutLeaveGameMode*()
|
proc LeaveGameMode*()
|
||||||
proc glutGameModeGet*(mode: TGLenum): int
|
proc GameModeGet*(mode: GLenum): 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
|
||||||
GLX_USE_GL* = 1'i32
|
USE_GL* = 1'i32
|
||||||
GLX_BUFFER_SIZE* = 2'i32
|
BUFFER_SIZE* = 2'i32
|
||||||
GLX_LEVEL* = 3'i32
|
LEVEL* = 3'i32
|
||||||
GLX_RGBA* = 4'i32
|
RGBA* = 4'i32
|
||||||
GLX_DOUBLEBUFFER* = 5'i32
|
DOUBLEBUFFER* = 5'i32
|
||||||
GLX_STEREO* = 6'i32
|
STEREO* = 6'i32
|
||||||
GLX_AUX_BUFFERS* = 7'i32
|
AUX_BUFFERS* = 7'i32
|
||||||
GLX_RED_SIZE* = 8'i32
|
RED_SIZE* = 8'i32
|
||||||
GLX_GREEN_SIZE* = 9'i32
|
GREEN_SIZE* = 9'i32
|
||||||
GLX_BLUE_SIZE* = 10'i32
|
BLUE_SIZE* = 10'i32
|
||||||
GLX_ALPHA_SIZE* = 11'i32
|
ALPHA_SIZE* = 11'i32
|
||||||
GLX_DEPTH_SIZE* = 12'i32
|
DEPTH_SIZE* = 12'i32
|
||||||
GLX_STENCIL_SIZE* = 13'i32
|
STENCIL_SIZE* = 13'i32
|
||||||
GLX_ACCUM_RED_SIZE* = 14'i32
|
ACCUM_RED_SIZE* = 14'i32
|
||||||
GLX_ACCUM_GREEN_SIZE* = 15'i32
|
ACCUM_GREEN_SIZE* = 15'i32
|
||||||
GLX_ACCUM_BLUE_SIZE* = 16'i32
|
ACCUM_BLUE_SIZE* = 16'i32
|
||||||
GLX_ACCUM_ALPHA_SIZE* = 17'i32 # GLX_EXT_visual_info extension
|
ACCUM_ALPHA_SIZE* = 17'i32 # EXT_visual_info extension
|
||||||
GLX_X_VISUAL_TYPE_EXT* = 0x00000022
|
X_VISUAL_TYPE_EXT* = 0x00000022
|
||||||
GLX_TRANSPARENT_TYPE_EXT* = 0x00000023
|
TRANSPARENT_TYPE_EXT* = 0x00000023
|
||||||
GLX_TRANSPARENT_INDEX_VALUE_EXT* = 0x00000024
|
TRANSPARENT_INDEX_VALUE_EXT* = 0x00000024
|
||||||
GLX_TRANSPARENT_RED_VALUE_EXT* = 0x00000025
|
TRANSPARENT_RED_VALUE_EXT* = 0x00000025
|
||||||
GLX_TRANSPARENT_GREEN_VALUE_EXT* = 0x00000026
|
TRANSPARENT_GREEN_VALUE_EXT* = 0x00000026
|
||||||
GLX_TRANSPARENT_BLUE_VALUE_EXT* = 0x00000027
|
TRANSPARENT_BLUE_VALUE_EXT* = 0x00000027
|
||||||
GLX_TRANSPARENT_ALPHA_VALUE_EXT* = 0x00000028 # Error codes returned by glXGetConfig:
|
TRANSPARENT_ALPHA_VALUE_EXT* = 0x00000028 # Error codes returned by glXGetConfig:
|
||||||
GLX_BAD_SCREEN* = 1
|
BAD_SCREEN* = 1
|
||||||
GLX_BAD_ATTRIBUTE* = 2
|
BAD_ATTRIBUTE* = 2
|
||||||
GLX_NO_EXTENSION* = 3
|
NO_EXTENSION* = 3
|
||||||
GLX_BAD_VISUAL* = 4
|
BAD_VISUAL* = 4
|
||||||
GLX_BAD_CONTEXT* = 5
|
BAD_CONTEXT* = 5
|
||||||
GLX_BAD_VALUE* = 6
|
BAD_VALUE* = 6
|
||||||
GLX_BAD_ENUM* = 7 # GLX 1.1 and later:
|
BAD_ENUM* = 7 # GLX 1.1 and later:
|
||||||
GLX_VENDOR* = 1
|
VENDOR* = 1
|
||||||
GLX_VERSION* = 2
|
VERSION* = 2
|
||||||
GLX_EXTENSIONS* = 3 # GLX_visual_info extension
|
EXTENSIONS* = 3 # visual_info extension
|
||||||
GLX_TRUE_COLOR_EXT* = 0x00008002
|
TRUE_COLOR_EXT* = 0x00008002
|
||||||
GLX_DIRECT_COLOR_EXT* = 0x00008003
|
DIRECT_COLOR_EXT* = 0x00008003
|
||||||
GLX_PSEUDO_COLOR_EXT* = 0x00008004
|
PSEUDO_COLOR_EXT* = 0x00008004
|
||||||
GLX_STATIC_COLOR_EXT* = 0x00008005
|
STATIC_COLOR_EXT* = 0x00008005
|
||||||
GLX_GRAY_SCALE_EXT* = 0x00008006
|
GRAY_SCALE_EXT* = 0x00008006
|
||||||
GLX_STATIC_GRAY_EXT* = 0x00008007
|
STATIC_GRAY_EXT* = 0x00008007
|
||||||
GLX_NONE_EXT* = 0x00008000
|
NONE_EXT* = 0x00008000
|
||||||
GLX_TRANSPARENT_RGB_EXT* = 0x00008008
|
TRANSPARENT_RGB_EXT* = 0x00008008
|
||||||
GLX_TRANSPARENT_INDEX_EXT* = 0x00008009
|
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,58 +97,38 @@ type # From XLib:
|
||||||
TGLXDrawable* = GLXDrawable
|
TGLXDrawable* = GLXDrawable
|
||||||
TGLXContextID* = GLXContextID
|
TGLXContextID* = GLXContextID
|
||||||
|
|
||||||
proc glXChooseVisual*(dpy: PDisplay, screen: int, attribList: ptr int32): PXVisualInfo{.
|
{.push cdecl, dynlib: dllname, importc: "glX$1".}
|
||||||
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{.cdecl, dynlib: dllname,
|
direct: bool): GLXContext
|
||||||
importc: "glXCreateContext".}
|
proc glXDestroyContext*(dpy: PDisplay, ctx: GLXContext)
|
||||||
proc glXDestroyContext*(dpy: PDisplay, ctx: GLXContext){.cdecl, dynlib: dllname,
|
proc glXMakeCurrent*(dpy: PDisplay, drawable: GLXDrawable, ctx: GLXContext): bool
|
||||||
importc: "glXDestroyContext".}
|
proc glXCopyContext*(dpy: PDisplay, src, dst: GLXContext, mask: int32)
|
||||||
proc glXMakeCurrent*(dpy: PDisplay, drawable: GLXDrawable, ctx: GLXContext): bool{.
|
proc glXSwapBuffers*(dpy: PDisplay, drawable: GLXDrawable)
|
||||||
cdecl, dynlib: dllname, importc: "glXMakeCurrent".}
|
proc glXCreateGLXPixmap*(dpy: PDisplay, visual: PXVisualInfo, pixmap: XPixmap): GLXPixmap
|
||||||
proc glXCopyContext*(dpy: PDisplay, src, dst: GLXContext, mask: int32){.cdecl,
|
proc glXDestroyGLXPixmap*(dpy: PDisplay, pixmap: GLXPixmap)
|
||||||
dynlib: dllname, importc: "glXCopyContext".}
|
proc glXQueryExtension*(dpy: PDisplay, errorb, event: var int): bool
|
||||||
proc glXSwapBuffers*(dpy: PDisplay, drawable: GLXDrawable){.cdecl,
|
proc glXQueryVersion*(dpy: PDisplay, maj, min: var int): bool
|
||||||
dynlib: dllname, importc: "glXSwapBuffers".}
|
proc glXIsDirect*(dpy: PDisplay, ctx: GLXContext): bool
|
||||||
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{.cdecl, dynlib: dllname,
|
value: var int): int
|
||||||
importc: "glXGetConfig".}
|
proc glXGetCurrentContext*(): GLXContext
|
||||||
proc glXGetCurrentContext*(): GLXContext{.cdecl, dynlib: dllname,
|
proc glXGetCurrentDrawable*(): GLXDrawable
|
||||||
importc: "glXGetCurrentContext".}
|
proc glXWaitGL*()
|
||||||
proc glXGetCurrentDrawable*(): GLXDrawable{.cdecl, dynlib: dllname,
|
proc glXWaitX*()
|
||||||
importc: "glXGetCurrentDrawable".}
|
proc glXUseXFont*(font: XFont, first, count, list: int)
|
||||||
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{.cdecl,
|
proc glXQueryExtensionsString*(dpy: PDisplay, screen: int): cstring
|
||||||
dynlib: dllname, importc: "glXQueryExtensionsString".}
|
proc glXQueryServerString*(dpy: PDisplay, screen, name: int): cstring
|
||||||
proc glXQueryServerString*(dpy: PDisplay, screen, name: int): cstring{.cdecl,
|
proc glXGetClientString*(dpy: PDisplay, name: int): cstring
|
||||||
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
|
||||||
cdecl, dynlib: dllname, importc: "glXCreateGLXPixmapMESA".}
|
proc glXReleaseBufferMESA*(dpy: PDisplay, d: GLXDrawable): bool
|
||||||
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){.cdecl, dynlib: dllname,
|
x, y, width, height: int)
|
||||||
importc: "glXCopySubBufferMESA".}
|
proc glXGetVideoSyncSGI*(counter: var int32): int
|
||||||
proc glXGetVideoSyncSGI*(counter: var int32): int{.cdecl, dynlib: dllname,
|
proc glXWaitVideoSyncSGI*(divisor, remainder: int, count: var int32): int
|
||||||
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