residualvm/residualvm — pull request #531 by giucam (2012-02-07 17:32:29+00:00)
Title: Abstract Graphics Layer

These commits add a set of classes (located at /graphics/agl) that create a layer between the engines and the renderer, be it OpenGL, TinyGL, Direct3D, or whatever.

The main class is AGL::Manager, a singleton, which owns the renderer and is used to create all the objects needed. (Bitmap2D, Mesh, Texture, ...)

I've ported the Grim Engine to it (both Grim and EMI) and it seems to work well. I was inspired by the Grim engine though, so it may need some adjustments for Myst3 and any other engine to come.

In my head, once ready, the renderer should be created in the main() (Manager::init() function), and the engine would just set the resolution.

It doesn't have any documentation yet. I'll start writing it now, but since it will probably take a few days i would like to know what do you think about it. :)