// can result in listeners being notified the same tile is ready multiple
// times but we don't want to draw it more than once per render cycle)
// ReferencedEnvelope viewbounds = getContext().getViewportModel().getBounds();
ReferencedEnvelope viewbounds = getContext().getImageBounds();
if (tile != null && tile.getBufferedImage() != null && viewbounds != null
&& viewbounds.intersects(tile.getBounds())
&& !renderedTiles.contains(tile.getId())) {
renderTile(graphics, tile, tileset.getCoordinateReferenceSystem(), style);
renderedTiles.add(tile.getId());
monitor.worked(tileWorth); // inc the monitor work by 1 tile