Moved OpenGL initialization, setUniform method now takes arguments based on uniform type