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