private void render(byte input[], int inputPosition, int inputWidth,
			int output[], int outputPosition, int outputWidth, 
			int width, int height, int colour) {
		int _width = -(width >> 2);
		width = -(width & 3);
		
		/*
		 * Iterate through the pixels.
		 */
		for (int row = -height; row < 0; row++) {
			for (int col = _width; col < 0; col++) {
				/*
				 * If the pixel in the current position is set,
				 * draw it with a given colour. If not, simply
				 * leave a space.
				 */
				
				if (input[inputPosition++] != 0)
					output[outputPosition++] = colour;
				else
					outputPosition++;
				if (input[inputPosition++] != 0)
					output[outputPosition++] = colour;
				else
					outputPosition++;
				if (input[inputPosition++] != 0)
					output[outputPosition++] = colour;
				else
					outputPosition++;
				if (input[inputPosition++] != 0)
					output[outputPosition++] = colour;
				else
					outputPosition++;
			}

			for (int i = width; i < 0; i++)
				if (input[inputPosition++] != 0)
					output[outputPosition++] = colour;
				else
					outputPosition++;

			outputPosition += outputWidth;
			inputPosition += inputWidth;
		}
	}