strokeRect(x, y, width, height, fill = false) {
		if (fill === false && this.lineWidth > 1) {
			const radius = this.lineWidth / 2;
			this.strokeLine(x, y, x + width, y);
			this.strokeLine(x + width, y, x + width, y + height);
			this.strokeLine(x + width, y + height, x, y + height);
			this.strokeLine(x, y + height, x, y);
			this.fillEllipse(x, y, radius, radius);
			this.fillEllipse(x + width, y, radius, radius);
			this.fillEllipse(x + width, y + height, radius, radius);
			this.fillEllipse(x, y + height, radius, radius);
		} else {
			this.setCompositor("primitive");
			this.path2D.beginPath();
			this.path2D.rect(x, y, width, height);
			if (fill === false) {
				this.currentCompositor.drawVertices(this.gl.LINES, this.path2D.points);
			} else {
				this.currentCompositor.drawVertices(
					this.gl.TRIANGLES,
					this.path2D.triangulatePath(),
				);
			}
		}
	}
Draw a stroke rectangle at the specified coordinates
@param {number} x - x axis of the coordinate for the rectangle starting point.
@param {number} y - y axis of the coordinate for the rectangle starting point.
@param {number} width - The rectangle's width.
@param {number} height - The rectangle's height.
@param {boolean} [fill=false] - also fill the shape with the current color if true