validImageBackground = new boolean[maxTileX+1][maxTileY+1];
synchronizedImage = synchronous;
if (oldImage == null || !oldImage.getBounds().equals(image.getBounds())) {
backgroundCache = new SoftValueHashMap();
// Swing geometry
Dimension dim = new Dimension(source.getWidth(), source.getHeight());
setPreferredSize(dim);
}