Improve OpenGL state changes
Move ShaderException into shader.d
Add OpenGL depth setup
Add basic material struct