Switch to using OpenGL Uniform Buffers instead of direct Uniform mapping where possible. [OpenGL Uniform Buffers](https://www.opengl.org/wiki/Uniform_Buffer_Object) [Introduction to Uniform Buffers](http://www.geeks3d.com/20140704/gpu-buffers-introduction-to-opengl-3-1-uniform-buffers-objects/) [modern-opengl](http://github.prideout.net/modern-opengl-prezo/) [Stackoverflow glUniformBlockBinding](https://stackoverflow.com/questions/23203095/whats-gluniformblockbinding-used-for) [glUniformBlockBinding](https://www.opengl.org/sdk/docs/man3/xhtml/glUniformBlockBinding.xml) [GameDev buffer layout advice](http://www.gamedev.net/topic/672488-glsl-error-c1502-nvidia-index-must-be-constant-expression/#entry5257213) [GLSLang reference compiler](https://www.khronos.org/opengles/sdk/tools/Reference-Compiler/)
Switch to using OpenGL Uniform Buffers instead of direct Uniform mapping where possible.
OpenGL Uniform Buffers
Introduction to Uniform Buffers
modern-opengl
Stackoverflow glUniformBlockBinding
glUniformBlockBinding
GameDev buffer layout advice
GLSLang reference compiler