residualvm/residualvm — pull request #727 by Botje (2013-04-23 20:06:09+00:00)
Title: RFC: Shader-based OpenGL renderer

This has been sitting in my queue for far too long now :)
This (big) series of patches adds in support for a shader-based OpenGL renderer, which I started, with help from somaen, klusark and tobigun.

The patches are mostly as development happened, some patches can undoubtedly be merged into others still.
Do we need some concrete changes before this can be merged to master?

Some notes:
- This renderer is only enabled if configure is called --with-opengl-shaders. Due to the current code structure, this completely disabled the old OpenGL renderer. Various #ifdef USE_OPENGL macros made it hard to nicely add a third renderer. Sorry.
- Changes to existing code are #ifdef'd with USE_OPENGL_SHADERS, which is set by the configure flag above.
- e7f9048 allows renderers to draw meshes by themselves, eg to draw several faces with the same shader settings. The default implementation is still the one from actor.cpp.
- 76fa976 and fc9b68e change the order in which meshes are drawn: they are now grouped by material. Implementing drawMesh for the other renderers similarly should give a nice speedup as a result.