Re-use ol.TileRange objects

This commit is contained in:
Tom Payne
2013-04-09 16:04:04 +02:00
parent e30109913e
commit e556c87a7c
3 changed files with 19 additions and 11 deletions

View File

@@ -201,6 +201,7 @@ ol.renderer.canvas.TileLayer.prototype.renderFrame =
tilesToDrawByZ, getTileIfLoaded);
var allTilesLoaded = true;
var tmpTileRange = new ol.TileRange(0, 0, 0, 0);
var childTileRange, fullyLoaded, tile, tileState, x, y;
for (x = tileRange.minX; x <= tileRange.maxX; ++x) {
for (y = tileRange.minY; y <= tileRange.maxY; ++y) {
@@ -216,9 +217,10 @@ ol.renderer.canvas.TileLayer.prototype.renderFrame =
allTilesLoaded = false;
fullyLoaded = tileGrid.forEachTileCoordParentTileRange(
tile.tileCoord, findLoadedTiles);
tile.tileCoord, findLoadedTiles, null, tmpTileRange);
if (!fullyLoaded) {
childTileRange = tileGrid.getTileCoordChildTileRange(tile.tileCoord);
childTileRange = tileGrid.getTileCoordChildTileRange(
tile.tileCoord, tmpTileRange);
if (!goog.isNull(childTileRange)) {
findLoadedTiles(z + 1, childTileRange);
}
@@ -276,7 +278,7 @@ ol.renderer.canvas.TileLayer.prototype.renderFrame =
context.drawImage(tile.getImage(), x, y, width, height);
}
interimTileRange =
tileGrid.getTileRangeForExtentAndZ(tileExtent, z);
tileGrid.getTileRangeForExtentAndZ(tileExtent, z, tmpTileRange);
minX = Math.max(interimTileRange.minX, canvasTileRange.minX);
maxX = Math.min(interimTileRange.maxX, canvasTileRange.maxX);
minY = Math.max(interimTileRange.minY, canvasTileRange.minY);