added a bunch of functionality for GLSL shaders