setCompositor(name = "default", shader = this.customShader) {
		const compositor = this.compositors.get(name);

		if (typeof compositor === "undefined") {
			throw new Error("Invalid Compositor");
		}

		if (this.currentCompositor !== compositor) {
			if (this.currentCompositor !== undefined) {
				// flush the current compositor
				this.currentCompositor.flush();
			}
			// set as the active one
			this.currentCompositor = compositor;
		}

		if (name === "quad" && typeof shader === "object") {
			this.currentCompositor.useShader(shader);
		} else {
			// (re)bind the compositor with the default shader (program & attributes)
			this.currentCompositor.bind();
		}

		return this.currentCompositor;
	}
set the active compositor for this renderer
@param {string} name - a compositor name
@param {GLShader} [shader] - an optional shader program to be used, instead of the default one, when activating the compositor
@returns {Compositor} an instance to the current active compositor