tint(src, color, mode = "multiply") {
		const attributes = {
			context: "2d",
			offscreenCanvas: true,
			transparent: true,
			antiAlias: this.settings.antiAlias,
		};
		const canvasTexture = new CanvasRenderTarget(
			src.width,
			src.height,
			attributes,
		);
		const context = canvasTexture.context;

		context.fillStyle = color instanceof Color ? color.toRGB() : color;
		context.fillRect(0, 0, src.width, src.height);

		context.globalCompositeOperation = mode;
		context.drawImage(src, 0, 0);
		context.globalCompositeOperation = "destination-atop";
		context.drawImage(src, 0, 0);

		return canvasTexture.canvas;
	}
tint the given image or canvas using the given color
@param {HTMLImageElement|HTMLCanvasElement|OffscreenCanvas} src - the source image to be tinted
@param {Color|string} color - the color that will be used to tint the image
@param {string} [mode="multiply"] - the composition mode used to tint the image
@returns {HTMLCanvasElement|OffscreenCanvas} a new canvas or offscreencanvas (if supported) element representing the tinted image