/** * @return a Rectangle which determines the Size of the BufferedImage to create If it fits the * size of the BufferedImage is viewBounds * bufferScaleFactor */ protected Rectangle getBufferRectangle() { // TODO: should be checked if width + height < 0 double bufferScaleFactor = BufferManager.sharedInstance().getBufferScaleFactor(); int bufferWidth = (int) (viewBounds.width * bufferScaleFactor); int bufferHeight = (int) (viewBounds.height * bufferScaleFactor); Rectangle newBufferBounds = new Rectangle( viewBounds.x - ((bufferWidth - viewBounds.width) / 2), viewBounds.y - ((bufferHeight - viewBounds.height) / 2), bufferWidth, bufferHeight); if (!isRectangleInReal(newBufferBounds)) { newBufferBounds = GeomUtil.checkBounds(newBufferBounds, realBounds); } newBufferBounds = checkOrigin(newBufferBounds); return newBufferBounds; }