public static void drawFilledRectangleAlpha(int colour, int y, int width, int height,
			int alpha, int x) {
		if (x < topX) {
			width -= topX - x;
			x = topX;
		}
		if (y < topY) {
			height -= topY - y;
			y = topY;
		}
		if (x + width > bottomX)
			width = bottomX - x;
		if (y + height > bottomY)
			height = bottomY - y;
		int l1 = 256 - alpha;
		int i2 = (colour >> 16 & 0xff) * alpha;
		int j2 = (colour >> 8 & 0xff) * alpha;
		int k2 = (colour & 0xff) * alpha;
		int k3 = DrawingArea.width - width;
		int l3 = x + y * DrawingArea.width;
		for (int i4 = 0; i4 < height; i4++) {
			for (int j4 = -width; j4 < 0; j4++) {
				int l2 = (pixels[l3] >> 16 & 0xff) * l1;
				int i3 = (pixels[l3] >> 8 & 0xff) * l1;
				int j3 = (pixels[l3] & 0xff) * l1;
				int packedRGB = ((i2 + l2 >> 8) << 16) + ((j2 + i3 >> 8) << 8)
						+ (k2 + j3 >> 8);
				pixels[l3++] = packedRGB;
			}

			l3 += k3;
		}
	}