Use a Domain Specific Language to define shaders in common-lisp syntax.
The code is then walked and compiled into glsl expressions and stored in
easy to use structures.
At the program initialization, the shader programs are compiled into opengl.
Dependencies are also kept, so that if a shader is redefined, the
corresponding program will be recompiled into opengl.
The old glsl-compiler is deleted as it is now rendered useless.
The render and mesh code are fixed according to changes in the interface.
Modify the mesh class to use a foreign array for the vertex and index
streams to pass to opengl, but the memory is not yet properly managed.
Add a function to render each node in the scene graph when it finds a
mesh component.