final RasterToolkit createRaster(int x, int y, int width, int height, boolean isBuffered) {
	int[] is = new int[width * height];
	int srcOffset = y * ((SoftwareToolkit) this).maxWidth + x;
	int yOff = ((SoftwareToolkit) this).maxWidth - width;
	for (int cury = 0; cury < height; cury++) {
	    int destoff = cury * width;
	    for (int curx = 0; curx < width; curx++)
		is[destoff + curx] = ((SoftwareToolkit) this).pixelBuffer[srcOffset++];
	    srcOffset += yOff;
	}
	if (isBuffered)
	    return new BufferedSoftwareRaster(this, is, width, height);
	return new SoftwareRaster(this, is, width, height);
    }