gl_core: Modernize OpenGL layer
This will be a big deal, as it might involve writing a cross-compiler. Or if we don't want to do that, simply having a prefabricated set of shaders selectable via an enum, or best of all, an ubershader. Also, gl_buffer is definitely in need of vertex buffer objects. Can we implement the particle system in compute???
There are also lots of texturing features that will need to be added. Framebuffer/render-to-texture support, mipmapping (we already have a nice image resizing pipeline to help with this), bumpmapping/normal maps, cubemaps, and multitexturing for pre-baked lightmaps. I would also like to add some really stark Doom3-esque stencil shadows, and better depth buffer functionality (whatever that would entail).
One issue is where/how to store tangents and bitangents in the Buffer object in a way that makes sense. Should they be added to the ae_vertex interleaved arrays specification, or should they be kept separately (which is kind of awkward conceptually, but probably better implementation-wise).