From 59c0297f3f35d637941890f7c63034c820865208 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 5 Feb 2018 14:37:36 +0100 Subject: [PATCH 1/2] Use the temporary extent in VectorTileLayer Reduce garbage generation --- src/ol/renderer/canvas/VectorTileLayer.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ol/renderer/canvas/VectorTileLayer.js b/src/ol/renderer/canvas/VectorTileLayer.js index e39cf13aa6..cd47f6181c 100644 --- a/src/ol/renderer/canvas/VectorTileLayer.js +++ b/src/ol/renderer/canvas/VectorTileLayer.js @@ -182,7 +182,7 @@ CanvasVectorTileLayerRenderer.prototype.createReplayGroup_ = function( const sourceTileExtent = sourceTileGrid.getTileCoordExtent(sourceTileCoord); const sharedExtent = getIntersection(tileExtent, sourceTileExtent); const bufferedExtent = equals(sourceTileExtent, sharedExtent) ? null : - buffer(sharedExtent, layer.getRenderBuffer() * resolution); + buffer(sharedExtent, layer.getRenderBuffer() * resolution, this.tmpExtent); const tileProjection = sourceTile.getProjection(); let reproject = false; if (!equivalentProjection(projection, tileProjection)) { @@ -396,8 +396,8 @@ CanvasVectorTileLayerRenderer.prototype.postCompose = function(context, frameSta continue; } const tileCoord = tile.tileCoord; - const worldOffset = tileGrid.getTileCoordExtent(tileCoord)[0] - - tileGrid.getTileCoordExtent(tile.wrappedTileCoord)[0]; + const worldOffset = tileGrid.getTileCoordExtent(tileCoord, this.tmpExtent)[0] - + tileGrid.getTileCoordExtent(tile.wrappedTileCoord, this.tmpExtent)[0]; let transform = undefined; for (let t = 0, tt = tile.tileKeys.length; t < tt; ++t) { const sourceTile = tile.getTile(tile.tileKeys[t]); @@ -503,7 +503,7 @@ CanvasVectorTileLayerRenderer.prototype.renderTileImage_ = function( const size = source.getTilePixelSize(z, pixelRatio, frameState.viewState.projection); context.canvas.width = size[0]; context.canvas.height = size[1]; - const tileExtent = tileGrid.getTileCoordExtent(tileCoord); + const tileExtent = tileGrid.getTileCoordExtent(tileCoord, this.tmpExtent); for (let i = 0, ii = tile.tileKeys.length; i < ii; ++i) { const sourceTile = tile.getTile(tile.tileKeys[i]); if (sourceTile.getState() == TileState.ERROR) { From f16a2ef2f4306d556e750a0ca08aa8b007d47103 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 5 Feb 2018 14:52:33 +0100 Subject: [PATCH 2/2] Fix jsdoc indentation --- src/ol/renderer/canvas/VectorTileLayer.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ol/renderer/canvas/VectorTileLayer.js b/src/ol/renderer/canvas/VectorTileLayer.js index cd47f6181c..6713768bf4 100644 --- a/src/ol/renderer/canvas/VectorTileLayer.js +++ b/src/ol/renderer/canvas/VectorTileLayer.js @@ -39,7 +39,7 @@ const CanvasVectorTileLayerRenderer = function(layer) { /** * Declutter tree. * @private - */ + */ this.declutterTree_ = layer.getDeclutter() ? rbush(9) : null; /** @@ -298,9 +298,9 @@ CanvasVectorTileLayerRenderer.prototype.forEachFeatureAtCoordinate = function(co found = found || replayGroup.forEachFeatureAtCoordinate( coordinate, resolution, rotation, hitTolerance, {}, /** - * @param {ol.Feature|ol.render.Feature} feature Feature. - * @return {?} Callback result. - */ + * @param {ol.Feature|ol.render.Feature} feature Feature. + * @return {?} Callback result. + */ function(feature) { const key = getUid(feature).toString(); if (!(key in features)) {