/support/ikarus/glu.scm

http://github.com/dharmatech/abstracting · Scheme · 511 lines · 441 code · 39 blank · 31 comment · 0 complexity · 7ee8c2f74050cae87016f62cc6e31e98 MD5 · raw file

  1. ;; Original version for Gambit by David St-Hilaire
  2. ;;
  3. ;; Ported to Ikarus by Ed Cavazos
  4. (library
  5. (glu)
  6. (export
  7. GLU_EXT_object_space_tess
  8. GLU_EXT_nurbs_tessellator
  9. GLU_FALSE
  10. GLU_TRUE
  11. GLU_VERSION_1_1
  12. GLU_VERSION_1_2
  13. GLU_VERSION_1_3
  14. GLU_VERSION
  15. GLU_EXTENSIONS
  16. GLU_INVALID_ENUM
  17. GLU_INVALID_VALUE
  18. GLU_OUT_OF_MEMORY
  19. GLU_INCOMPATIBLE_GL_VERSION
  20. GLU_INVALID_OPERATION
  21. GLU_OUTLINE_POLYGON
  22. GLU_OUTLINE_PATCH
  23. GLU_NURBS_ERROR
  24. GLU_ERROR
  25. GLU_NURBS_BEGIN
  26. GLU_NURBS_BEGIN_EXT
  27. GLU_NURBS_VERTEX
  28. GLU_NURBS_VERTEX_EXT
  29. GLU_NURBS_NORMAL
  30. GLU_NURBS_NORMAL_EXT
  31. GLU_NURBS_COLOR
  32. GLU_NURBS_COLOR_EXT
  33. GLU_NURBS_TEXTURE_COORD
  34. GLU_NURBS_TEX_COORD_EXT
  35. GLU_NURBS_END
  36. GLU_NURBS_END_EXT
  37. GLU_NURBS_BEGIN_DATA
  38. GLU_NURBS_BEGIN_DATA_EXT
  39. GLU_NURBS_VERTEX_DATA
  40. GLU_NURBS_VERTEX_DATA_EXT
  41. GLU_NURBS_NORMAL_DATA
  42. GLU_NURBS_NORMAL_DATA_EXT
  43. GLU_NURBS_COLOR_DATA
  44. GLU_NURBS_COLOR_DATA_EXT
  45. GLU_NURBS_TEXTURE_COORD_DATA
  46. GLU_NURBS_TEX_COORD_DATA_EXT
  47. GLU_NURBS_END_DATA
  48. GLU_NURBS_END_DATA_EXT
  49. GLU_NURBS_ERROR1
  50. GLU_NURBS_ERROR2
  51. GLU_NURBS_ERROR3
  52. GLU_NURBS_ERROR4
  53. GLU_NURBS_ERROR5
  54. GLU_NURBS_ERROR6
  55. GLU_NURBS_ERROR7
  56. GLU_NURBS_ERROR8
  57. GLU_NURBS_ERROR9
  58. GLU_NURBS_ERROR10
  59. GLU_NURBS_ERROR11
  60. GLU_NURBS_ERROR12
  61. GLU_NURBS_ERROR13
  62. GLU_NURBS_ERROR14
  63. GLU_NURBS_ERROR15
  64. GLU_NURBS_ERROR16
  65. GLU_NURBS_ERROR17
  66. GLU_NURBS_ERROR18
  67. GLU_NURBS_ERROR19
  68. GLU_NURBS_ERROR20
  69. GLU_NURBS_ERROR21
  70. GLU_NURBS_ERROR22
  71. GLU_NURBS_ERROR23
  72. GLU_NURBS_ERROR24
  73. GLU_NURBS_ERROR25
  74. GLU_NURBS_ERROR26
  75. GLU_NURBS_ERROR27
  76. GLU_NURBS_ERROR28
  77. GLU_NURBS_ERROR29
  78. GLU_NURBS_ERROR30
  79. GLU_NURBS_ERROR31
  80. GLU_NURBS_ERROR32
  81. GLU_NURBS_ERROR33
  82. GLU_NURBS_ERROR34
  83. GLU_NURBS_ERROR35
  84. GLU_NURBS_ERROR36
  85. GLU_NURBS_ERROR37
  86. GLU_AUTO_LOAD_MATRIX
  87. GLU_CULLING
  88. GLU_SAMPLING_TOLERANCE
  89. GLU_DISPLAY_MODE
  90. GLU_PARAMETRIC_TOLERANCE
  91. GLU_SAMPLING_METHOD
  92. GLU_U_STEP
  93. GLU_V_STEP
  94. GLU_NURBS_MODE
  95. GLU_NURBS_MODE_EXT
  96. GLU_NURBS_TESSELLATOR
  97. GLU_NURBS_TESSELLATOR_EXT
  98. GLU_NURBS_RENDERER
  99. GLU_NURBS_RENDERER_EXT
  100. GLU_OBJECT_PARAMETRIC_ERROR
  101. GLU_OBJECT_PARAMETRIC_ERROR_EXT
  102. GLU_OBJECT_PATH_LENGTH
  103. GLU_OBJECT_PATH_LENGTH_EXT
  104. GLU_PATH_LENGTH
  105. GLU_PARAMETRIC_ERROR
  106. GLU_DOMAIN_DISTANCE
  107. GLU_MAP1_TRIM_2
  108. GLU_MAP1_TRIM_3
  109. GLU_POINT
  110. GLU_LINE
  111. GLU_FILL
  112. GLU_SILHOUETTE
  113. GLU_SMOOTH
  114. GLU_FLAT
  115. GLU_NONE
  116. GLU_OUTSIDE
  117. GLU_INSIDE
  118. GLU_TESS_BEGIN
  119. GLU_BEGIN
  120. GLU_TESS_VERTEX
  121. GLU_VERTEX
  122. GLU_TESS_END
  123. GLU_END
  124. GLU_TESS_ERROR
  125. GLU_TESS_EDGE_FLAG
  126. GLU_EDGE_FLAG
  127. GLU_TESS_COMBINE
  128. GLU_TESS_BEGIN_DATA
  129. GLU_TESS_VERTEX_DATA
  130. GLU_TESS_END_DATA
  131. GLU_TESS_ERROR_DATA
  132. GLU_TESS_EDGE_FLAG_DATA
  133. GLU_TESS_COMBINE_DATA
  134. GLU_CW
  135. GLU_CCW
  136. GLU_INTERIOR
  137. GLU_EXTERIOR
  138. GLU_UNKNOWN
  139. GLU_TESS_WINDING_RULE
  140. GLU_TESS_BOUNDARY_ONLY
  141. GLU_TESS_TOLERANCE
  142. GLU_TESS_ERROR1
  143. GLU_TESS_ERROR2
  144. GLU_TESS_ERROR3
  145. GLU_TESS_ERROR4
  146. GLU_TESS_ERROR5
  147. GLU_TESS_ERROR6
  148. GLU_TESS_ERROR7
  149. GLU_TESS_ERROR8
  150. GLU_TESS_MISSING_BEGIN_POLYGON
  151. GLU_TESS_MISSING_BEGIN_CONTOUR
  152. GLU_TESS_MISSING_END_POLYGON
  153. GLU_TESS_MISSING_END_CONTOUR
  154. GLU_TESS_COORD_TOO_LARGE
  155. GLU_TESS_NEED_COMBINE_CALLBACK
  156. GLU_TESS_WINDING_ODD
  157. GLU_TESS_WINDING_NONZERO
  158. GLU_TESS_WINDING_POSITIVE
  159. GLU_TESS_WINDING_NEGATIVE
  160. GLU_TESS_WINDING_ABS_GEQ_TWO
  161. GLU_TESS_MAX_COORD
  162. gluBeginCurve
  163. gluBeginPolygon
  164. gluBeginSurface
  165. gluBeginTrim
  166. gluBuild1DMipmapLevels
  167. gluBuild1DMipmaps
  168. gluBuild2DMipmapLevels
  169. gluBuild2DMipmaps
  170. gluBuild3DMipmapLevels
  171. gluBuild3DMipmaps
  172. gluCheckExtension
  173. gluCylinder
  174. gluDeleteNurbsRenderer
  175. gluDeleteQuadric
  176. gluDeleteTess
  177. gluDisk
  178. gluEndCurve
  179. gluEndPolygon
  180. gluEndSurface
  181. gluEndTrim
  182. gluErrorString
  183. gluGetNurbsProperty
  184. gluGetString
  185. gluGetTessProperty
  186. gluLoadSamplingMatrices
  187. gluLookAt
  188. gluNewNurbsRenderer
  189. gluNewQuadric
  190. gluNewTess
  191. gluNextContour
  192. ;; gluNurbsCallback
  193. gluNurbsCallbackData
  194. gluNurbsCallbackDataEXT
  195. gluNurbsCurve
  196. gluNurbsProperty
  197. gluNurbsSurface
  198. gluOrtho2D
  199. gluPartialDisk
  200. gluPerspective
  201. gluPickMatrix
  202. gluProject
  203. gluPwlCurve
  204. gluQuadricCallback
  205. gluQuadricDrawStyle
  206. gluQuadricNormals
  207. gluQuadricOrientation
  208. gluQuadricTexture
  209. gluScaleImage
  210. gluSphere
  211. gluTessBeginContour
  212. gluTessBeginPolygon
  213. ;; gluTessCallback
  214. gluTessEndContour
  215. gluTessEndPolygon
  216. gluTessNormal
  217. gluTessProperty
  218. gluTessVertex
  219. gluUnProject
  220. gluUnProject4)
  221. (import (rnrs) (ypsilon-compat))
  222. (define libGLU (cond
  223. (on-darwin (load-shared-object "OpenGL.framework/OpenGL"))
  224. ;; (on-windows (load-shared-object "opengl32.dll"))
  225. (on-linux (load-shared-object "libGLU.so.1"))
  226. (on-freebsd (load-shared-object "libGLU.so"))
  227. ;; (on-openbsd (load-shared-object "libGLU.so.7.3"))
  228. (else
  229. (assertion-violation
  230. #f
  231. "can not locate GLU library, unknown operating system"))))
  232. (define GLU_EXT_object_space_tess 1)
  233. (define GLU_EXT_nurbs_tessellator 1)
  234. ;/* Boolean* /
  235. (define GLU_FALSE 0)
  236. (define GLU_TRUE 1)
  237. ;/* Version* /
  238. (define GLU_VERSION_1_1 1)
  239. (define GLU_VERSION_1_2 1)
  240. (define GLU_VERSION_1_3 1)
  241. ;/* StringName* /
  242. (define GLU_VERSION 100800)
  243. (define GLU_EXTENSIONS 100801)
  244. ;/* ErrorCode* /
  245. (define GLU_INVALID_ENUM 100900)
  246. (define GLU_INVALID_VALUE 100901)
  247. (define GLU_OUT_OF_MEMORY 100902)
  248. (define GLU_INCOMPATIBLE_GL_VERSION 100903)
  249. (define GLU_INVALID_OPERATION 100904)
  250. ;; /* NurbsDisplay* /
  251. ;; /* GLU_FILL* /
  252. (define GLU_OUTLINE_POLYGON 100240)
  253. (define GLU_OUTLINE_PATCH 100241)
  254. ;/* NurbsCallback* /
  255. (define GLU_NURBS_ERROR 100103)
  256. (define GLU_ERROR 100103)
  257. (define GLU_NURBS_BEGIN 100164)
  258. (define GLU_NURBS_BEGIN_EXT 100164)
  259. (define GLU_NURBS_VERTEX 100165)
  260. (define GLU_NURBS_VERTEX_EXT 100165)
  261. (define GLU_NURBS_NORMAL 100166)
  262. (define GLU_NURBS_NORMAL_EXT 100166)
  263. (define GLU_NURBS_COLOR 100167)
  264. (define GLU_NURBS_COLOR_EXT 100167)
  265. (define GLU_NURBS_TEXTURE_COORD 100168)
  266. (define GLU_NURBS_TEX_COORD_EXT 100168)
  267. (define GLU_NURBS_END 100169)
  268. (define GLU_NURBS_END_EXT 100169)
  269. (define GLU_NURBS_BEGIN_DATA 100170)
  270. (define GLU_NURBS_BEGIN_DATA_EXT 100170)
  271. (define GLU_NURBS_VERTEX_DATA 100171)
  272. (define GLU_NURBS_VERTEX_DATA_EXT 100171)
  273. (define GLU_NURBS_NORMAL_DATA 100172)
  274. (define GLU_NURBS_NORMAL_DATA_EXT 100172)
  275. (define GLU_NURBS_COLOR_DATA 100173)
  276. (define GLU_NURBS_COLOR_DATA_EXT 100173)
  277. (define GLU_NURBS_TEXTURE_COORD_DATA 100174)
  278. (define GLU_NURBS_TEX_COORD_DATA_EXT 100174)
  279. (define GLU_NURBS_END_DATA 100175)
  280. (define GLU_NURBS_END_DATA_EXT 100175)
  281. ;/* NurbsError* /
  282. (define GLU_NURBS_ERROR1 100251)
  283. (define GLU_NURBS_ERROR2 100252)
  284. (define GLU_NURBS_ERROR3 100253)
  285. (define GLU_NURBS_ERROR4 100254)
  286. (define GLU_NURBS_ERROR5 100255)
  287. (define GLU_NURBS_ERROR6 100256)
  288. (define GLU_NURBS_ERROR7 100257)
  289. (define GLU_NURBS_ERROR8 100258)
  290. (define GLU_NURBS_ERROR9 100259)
  291. (define GLU_NURBS_ERROR10 100260)
  292. (define GLU_NURBS_ERROR11 100261)
  293. (define GLU_NURBS_ERROR12 100262)
  294. (define GLU_NURBS_ERROR13 100263)
  295. (define GLU_NURBS_ERROR14 100264)
  296. (define GLU_NURBS_ERROR15 100265)
  297. (define GLU_NURBS_ERROR16 100266)
  298. (define GLU_NURBS_ERROR17 100267)
  299. (define GLU_NURBS_ERROR18 100268)
  300. (define GLU_NURBS_ERROR19 100269)
  301. (define GLU_NURBS_ERROR20 100270)
  302. (define GLU_NURBS_ERROR21 100271)
  303. (define GLU_NURBS_ERROR22 100272)
  304. (define GLU_NURBS_ERROR23 100273)
  305. (define GLU_NURBS_ERROR24 100274)
  306. (define GLU_NURBS_ERROR25 100275)
  307. (define GLU_NURBS_ERROR26 100276)
  308. (define GLU_NURBS_ERROR27 100277)
  309. (define GLU_NURBS_ERROR28 100278)
  310. (define GLU_NURBS_ERROR29 100279)
  311. (define GLU_NURBS_ERROR30 100280)
  312. (define GLU_NURBS_ERROR31 100281)
  313. (define GLU_NURBS_ERROR32 100282)
  314. (define GLU_NURBS_ERROR33 100283)
  315. (define GLU_NURBS_ERROR34 100284)
  316. (define GLU_NURBS_ERROR35 100285)
  317. (define GLU_NURBS_ERROR36 100286)
  318. (define GLU_NURBS_ERROR37 100287)
  319. ;/* NurbsProperty* /
  320. (define GLU_AUTO_LOAD_MATRIX 100200)
  321. (define GLU_CULLING 100201)
  322. (define GLU_SAMPLING_TOLERANCE 100203)
  323. (define GLU_DISPLAY_MODE 100204)
  324. (define GLU_PARAMETRIC_TOLERANCE 100202)
  325. (define GLU_SAMPLING_METHOD 100205)
  326. (define GLU_U_STEP 100206)
  327. (define GLU_V_STEP 100207)
  328. (define GLU_NURBS_MODE 100160)
  329. (define GLU_NURBS_MODE_EXT 100160)
  330. (define GLU_NURBS_TESSELLATOR 100161)
  331. (define GLU_NURBS_TESSELLATOR_EXT 100161)
  332. (define GLU_NURBS_RENDERER 100162)
  333. (define GLU_NURBS_RENDERER_EXT 100162)
  334. ;/* NurbsSampling* /
  335. (define GLU_OBJECT_PARAMETRIC_ERROR 100208)
  336. (define GLU_OBJECT_PARAMETRIC_ERROR_EXT 100208)
  337. (define GLU_OBJECT_PATH_LENGTH 100209)
  338. (define GLU_OBJECT_PATH_LENGTH_EXT 100209)
  339. (define GLU_PATH_LENGTH 100215)
  340. (define GLU_PARAMETRIC_ERROR 100216)
  341. (define GLU_DOMAIN_DISTANCE 100217)
  342. ;/* NurbsTrim* /
  343. (define GLU_MAP1_TRIM_2 100210)
  344. (define GLU_MAP1_TRIM_3 100211)
  345. ;/* QuadricDrawStyle* /
  346. (define GLU_POINT 100010)
  347. (define GLU_LINE 100011)
  348. (define GLU_FILL 100012)
  349. (define GLU_SILHOUETTE 100013)
  350. ;; /* QuadricCallback* /
  351. ;; /* GLU_ERROR* /
  352. ;/* QuadricNormal* /
  353. (define GLU_SMOOTH 100000)
  354. (define GLU_FLAT 100001)
  355. (define GLU_NONE 100002)
  356. ;/* QuadricOrientation* /
  357. (define GLU_OUTSIDE 100020)
  358. (define GLU_INSIDE 100021)
  359. ;/* TessCallback* /
  360. (define GLU_TESS_BEGIN 100100)
  361. (define GLU_BEGIN 100100)
  362. (define GLU_TESS_VERTEX 100101)
  363. (define GLU_VERTEX 100101)
  364. (define GLU_TESS_END 100102)
  365. (define GLU_END 100102)
  366. (define GLU_TESS_ERROR 100103)
  367. (define GLU_TESS_EDGE_FLAG 100104)
  368. (define GLU_EDGE_FLAG 100104)
  369. (define GLU_TESS_COMBINE 100105)
  370. (define GLU_TESS_BEGIN_DATA 100106)
  371. (define GLU_TESS_VERTEX_DATA 100107)
  372. (define GLU_TESS_END_DATA 100108)
  373. (define GLU_TESS_ERROR_DATA 100109)
  374. (define GLU_TESS_EDGE_FLAG_DATA 100110)
  375. (define GLU_TESS_COMBINE_DATA 100111)
  376. ;/* TessContour* /
  377. (define GLU_CW 100120)
  378. (define GLU_CCW 100121)
  379. (define GLU_INTERIOR 100122)
  380. (define GLU_EXTERIOR 100123)
  381. (define GLU_UNKNOWN 100124)
  382. ;/* TessProperty* /
  383. (define GLU_TESS_WINDING_RULE 100140)
  384. (define GLU_TESS_BOUNDARY_ONLY 100141)
  385. (define GLU_TESS_TOLERANCE 100142)
  386. ;/* TessError* /
  387. (define GLU_TESS_ERROR1 100151)
  388. (define GLU_TESS_ERROR2 100152)
  389. (define GLU_TESS_ERROR3 100153)
  390. (define GLU_TESS_ERROR4 100154)
  391. (define GLU_TESS_ERROR5 100155)
  392. (define GLU_TESS_ERROR6 100156)
  393. (define GLU_TESS_ERROR7 100157)
  394. (define GLU_TESS_ERROR8 100158)
  395. (define GLU_TESS_MISSING_BEGIN_POLYGON 100151)
  396. (define GLU_TESS_MISSING_BEGIN_CONTOUR 100152)
  397. (define GLU_TESS_MISSING_END_POLYGON 100153)
  398. (define GLU_TESS_MISSING_END_CONTOUR 100154)
  399. (define GLU_TESS_COORD_TOO_LARGE 100155)
  400. (define GLU_TESS_NEED_COMBINE_CALLBACK 100156)
  401. ;/* TessWinding* /
  402. (define GLU_TESS_WINDING_ODD 100130)
  403. (define GLU_TESS_WINDING_NONZERO 100131)
  404. (define GLU_TESS_WINDING_POSITIVE 100132)
  405. (define GLU_TESS_WINDING_NEGATIVE 100133)
  406. (define GLU_TESS_WINDING_ABS_GEQ_TWO 100134)
  407. (define GLU_TESS_MAX_COORD 1e150)
  408. (define-syntax define-function
  409. (syntax-rules ()
  410. ((_ ret name args)
  411. (define name (c-function libGLU "GLU library" ret __stdcall name args)))))
  412. (define-function void gluBeginCurve (void*))
  413. (define-function void gluBeginPolygon (void*))
  414. (define-function void gluBeginSurface (void*))
  415. (define-function void gluBeginTrim (void*))
  416. (define-function int gluBuild1DMipmapLevels (int int int int int int int int void*))
  417. (define-function int gluBuild1DMipmaps (int int int int int void*))
  418. (define-function int gluBuild2DMipmapLevels (int int int int int int int int int void*))
  419. (define-function int gluBuild2DMipmaps (int int int int int int void*))
  420. (define-function int gluBuild3DMipmapLevels (int int int int int int int int int int void*))
  421. (define-function int gluBuild3DMipmaps (int int int int int int int void*))
  422. (define-function int gluCheckExtension (void* void*))
  423. (define-function void gluCylinder (void* double double double int int))
  424. (define-function void gluDeleteNurbsRenderer (void*))
  425. (define-function void gluDeleteQuadric (void*))
  426. (define-function void gluDeleteTess (void*))
  427. (define-function void gluDisk (void* double double int int))
  428. (define-function void gluEndCurve (void*))
  429. (define-function void gluEndPolygon (void*))
  430. (define-function void gluEndSurface (void*))
  431. (define-function void gluEndTrim (void*))
  432. (define-function void* gluErrorString (int))
  433. (define-function void gluGetNurbsProperty (void* int void*))
  434. (define-function void* gluGetString (int))
  435. (define-function void gluGetTessProperty (void* int void*))
  436. (define-function void gluLoadSamplingMatrices (void* void* void* void*))
  437. (define-function void gluLookAt (double double double double double double double double double))
  438. (define-function void* gluNewNurbsRenderer ())
  439. (define-function void* gluNewQuadric ())
  440. (define-function void* gluNewTess ())
  441. (define-function void gluNextContour (void* int))
  442. ;; (define-function void gluNurbsCallback (void* int _GLUfuncptr))
  443. (define-function void gluNurbsCallbackData (void* void*))
  444. (define-function void gluNurbsCallbackDataEXT (void* void*))
  445. (define-function void gluNurbsCurve (void* int void* int void* int int))
  446. (define-function void gluNurbsProperty (void* int float))
  447. (define-function void gluNurbsSurface (void* int void* int void* int int void* int int int))
  448. (define-function void gluOrtho2D (double double double double))
  449. (define-function void gluPartialDisk (void* double double int int double double))
  450. (define-function void gluPerspective (double double double double))
  451. (define-function void gluPickMatrix (double double double double void*))
  452. (define-function int gluProject (double double double void* void* void* void* void* void*))
  453. (define-function void gluPwlCurve (void* int void* int int))
  454. ;; (define-function void gluQuadricCallback (void* int _GLUfuncptr))
  455. (define-function void gluQuadricCallback (void* int (c-callback void (int))))
  456. (define-function void gluQuadricDrawStyle (void* int))
  457. (define-function void gluQuadricNormals (void* int))
  458. (define-function void gluQuadricOrientation (void* int))
  459. (define-function void gluQuadricTexture (void* int))
  460. (define-function int gluScaleImage (int int int int void* int int int void*))
  461. (define-function void gluSphere (void* double int int))
  462. (define-function void gluTessBeginContour (void*))
  463. (define-function void gluTessBeginPolygon (void* void*))
  464. ;; (define-function void gluTessCallback (void* int _GLUfuncptr))
  465. (define-function void gluTessEndContour (void*))
  466. (define-function void gluTessEndPolygon (void*))
  467. (define-function void gluTessNormal (void* double double double))
  468. (define-function void gluTessProperty (void* int double))
  469. (define-function void gluTessVertex (void* void* void*))
  470. (define-function int gluUnProject (double double double void* void* void* void* void* void*))
  471. (define-function int gluUnProject4 (double double double double void* void* void* double double void* void* void* void*))
  472. )