function Shader(program, uniforms) {
        /**
         * Used internally to bind uniform buffer objects.
         * @ignore
         */
        this.uniformBindCount = 0;
        this.program = program;
        // lets see whats been passed in
        // uniforms should be converted to a uniform group
        if (uniforms) {
            if (uniforms instanceof UniformGroup) {
                this.uniformGroup = uniforms;
            }
            else {
                this.uniformGroup = new UniformGroup(uniforms);
            }
        }
        else {
            this.uniformGroup = new UniformGroup({});
        }
    }
@param program - The program the shader will use.
@param uniforms - Custom uniforms to use to augment the built-in ones.