setUniforms() {
        // set our uniforms if we got some
        if(this.uniforms) {
            for(const key in this.uniforms) {
                let uniform = this.uniforms[key];

                // set our uniform location
                uniform.location = this.gl.getUniformLocation(this.program, uniform.name);

                // handle Vec2, Vec3, Mat4, floats, arrays, etc
                if(!uniform._internalFormat) {
                    this.setInternalFormat(uniform);
                }

                if(!uniform.type) {
                    if(uniform._internalFormat === "Vec2") {
                        uniform.type = "2f";
                    }
                    else if(uniform._internalFormat === "Vec3") {
                        uniform.type = "3f";
                    }
                    else if(uniform._internalFormat === "Mat4") {
                        uniform.type = "mat4";
                    }
                    else if(uniform._internalFormat === "array") {
                        if(uniform.value.length === 4) {
                            uniform.type = "4f";

                            if(!this.renderer.production) throwWarning(this.type + ": No uniform type declared for " + uniform.name + ", applied a 4f (array of 4 floats) uniform type");
                        }
                        else if(uniform.value.length === 3) {
                            uniform.type = "3f";

                            if(!this.renderer.production) throwWarning(this.type + ": No uniform type declared for " + uniform.name + ", applied a 3f (array of 3 floats) uniform type");
                        }
                        else if(uniform.value.length === 2) {
                            uniform.type = "2f";

                            if(!this.renderer.production) throwWarning(this.type + ": No uniform type declared for " + uniform.name + ", applied a 2f (array of 2 floats) uniform type");
                        }
                    }
                    else if(uniform._internalFormat === "mat") {
                        if(uniform.value.length === 16) {
                            uniform.type = "mat4";

                            if(!this.renderer.production) throwWarning(this.type + ": No uniform type declared for " + uniform.name + ", applied a mat4 (4x4 matrix array) uniform type");
                        }
                        else if(uniform.value.length === 9) {
                            uniform.type = "mat3";

                            if(!this.renderer.production) throwWarning(this.type + ": No uniform type declared for " + uniform.name + ", applied a mat3 (3x3 matrix array) uniform type");
                        }
                        else  if(uniform.value.length === 4) {
                            uniform.type = "mat2";

                            if(!this.renderer.production) throwWarning(this.type + ": No uniform type declared for " + uniform.name + ", applied a mat2 (2x2 matrix array) uniform type");
                        }
                    }
                    else {
                        uniform.type = "1f";

                        if(!this.renderer.production) throwWarning(this.type + ": No uniform type declared for " + uniform.name + ", applied a 1f (float) uniform type");
                    }
                }

                // set the uniforms update functions
                this.handleUniformSetting(uniform);

                // update the uniform
                uniform.update && uniform.update(uniform);
            }
        }
    }
This inits our uniforms
     Sets its internal format and type if not provided then upload the uniform
*