gfx-rs/gfx-rs — pull request #209 by kvark (2014-08-14 17:29:03+00:00)
Title: Metamorphosis: the new architecture based on draw lists

Described briefly on [Reddit](http://www.reddit.com/r/rust_gamedev/comments/2dc47d/gfxrs_is_metamorphosing/)
Closes #203

This PR removes `Renderer`, `Device`, and the communication between them. Instead, it introduces front-end `Manager` and `DrawList`, as well as device draw list concept. The draw list is the new communication medium between the rendering front-end and the device, thus no explicit multi-tasking is needed. One can conveniently use draw lists on a single-thread, or pass them around (by re-using them) between user thread and a render thread.

Note that there are some rough edges still, but I don't want to make everyone to wait for all the polishing:
- [ ] it doesn't merge, needs a re-base
- [ ] cube example doesn't compile, needs a small fix
- [ ] we need a new multi-tasking example
- [ ] some comments are obsolete, a lot of documentation is missing
- [ ] I'm thinking about another iteration of the shader parameters. Fortunately, this is mostly orthogonal.