Examples are given in the Java programming language for the sake
of keeping code platform independent, but no Java-specific features
are used and programs should be easily understood by programmers of
other imperative languages (C, C++, Ada, etc). The OpenGL library used
is
LWJGL.
The example code uses OpenGL 3.0 but does not use anything that is not
present in OpenGL 2.1 other than framebuffer objects. Porting this
code to OpenGL 2.1 is simple: see the
ARB_framebuffer_object
and/or
EXT_framebuffer_object
extensions. The shaders used are GLSL 1.1 compatible. For the sake of
keeping the code short and simple and to avoid depending on external
libraries for what should be short tutorial code, the example programs use
the immediate mode
glBegin()/glEnd() functions to
specify vertices and also the traditional OpenGL matrix stack.