Legacy OpenGL immediate-mode bindings for OCaml
- OCaml 96%
- Dune 2.5%
- Shell 1.5%
| .github/workflows | ||
| bin | ||
| docs | ||
| lib | ||
| test | ||
| .ocamlformat | ||
| CHANGELOG.md | ||
| cube.png | ||
| dune-project | ||
| gl-legacy.opam | ||
| gl-legacy.opam.template | ||
| LICENSE | ||
| make_docs.sh | ||
| README.md | ||
| triangle.png | ||
gl-legacy
Legacy OpenGL immediate-mode bindings for OCaml
Use this together with tgls for a complete coverage of (more) modern OpenGL.
Work in Progress
API Documentation
https://sanette.github.io/gl-legacy/
Examples
To run the demos:
- Make sure
tsdlis installed, or run
opam install tsdl
Note: on Windows you might need to do instead:
opam pin https://github.com/sanette/tsdl.git
- Then
mv bin/dune.moveme bin/dune
dune exec bin/triangle.exe
dune exec bin/cube.exe
dune exec bin/cube_lit.exe
dune exec bin/cube_list.exe
This one requires in addition tsdl-image and tgls:
cd bin; dune exec ./image_quad.exe
Code sample
(...)
Gl_legacy.gl_begin Gl_legacy.triangles;
Gl_legacy.color3f 1.0 0.0 0.0;
Gl_legacy.vertex2f 0.0 0.8;
Gl_legacy.color3f 0.0 1.0 0.0;
Gl_legacy.vertex2f (-0.8) (-0.8);
Gl_legacy.color3f 0.0 0.0 1.0;
Gl_legacy.vertex2f 0.8 (-0.8);
Gl_legacy.gl_end ();
(...)
But why?
- Why old openGL?
Because it's a lot easier to program, has some pedagogical value, and allows me to run old code I wrote in the the good old times.
- But there's already
lablglandglMLite!
True. Good question. The goal is to have a minimal set of bindings
that would complement tgls (See the image_quad example).

