diff --git a/src/ol/map.js b/src/ol/map.js index b76dd1985c..068147933c 100644 --- a/src/ol/map.js +++ b/src/ol/map.js @@ -1283,6 +1283,7 @@ ol.Map.prototype.renderFrame_ = function(time) { var size = this.getSize(); var view = this.getView(); + var extent = ol.extent.createEmpty(); /** @type {?olx.FrameState} */ var frameState = null; if (size !== undefined && ol.size.hasArea(size) && view && view.isDef()) { @@ -1297,7 +1298,7 @@ ol.Map.prototype.renderFrame_ = function(time) { animate: false, attributions: {}, coordinateToPixelMatrix: this.coordinateToPixelMatrix_, - extent: null, + extent: extent, focus: !this.focus_ ? viewState.center : this.focus_, index: this.frameIndex_++, layerStates: layerStates, @@ -1329,7 +1330,7 @@ ol.Map.prototype.renderFrame_ = function(time) { preRenderFunctions.length = n; frameState.extent = ol.extent.getForViewAndSize(viewState.center, - viewState.resolution, viewState.rotation, frameState.size); + viewState.resolution, viewState.rotation, frameState.size, extent); } this.frameState_ = frameState; diff --git a/src/ol/source/rastersource.js b/src/ol/source/rastersource.js index 9f1a5c1dbb..bbae4bc9d1 100644 --- a/src/ol/source/rastersource.js +++ b/src/ol/source/rastersource.js @@ -219,15 +219,16 @@ ol.source.Raster.prototype.getImage = function(extent, resolution, pixelRatio, p return null; } - if (!this.isDirty_(extent, resolution)) { + var currentExtent = extent.slice(); + if (!this.isDirty_(currentExtent, resolution)) { return this.renderedImageCanvas_; } var context = this.canvasContext_; var canvas = context.canvas; - var width = Math.round(ol.extent.getWidth(extent) / resolution); - var height = Math.round(ol.extent.getHeight(extent) / resolution); + var width = Math.round(ol.extent.getWidth(currentExtent) / resolution); + var height = Math.round(ol.extent.getHeight(currentExtent) / resolution); if (width !== canvas.width || height !== canvas.height) { @@ -235,16 +236,16 @@ ol.source.Raster.prototype.getImage = function(extent, resolution, pixelRatio, p canvas.height = height; } - var frameState = this.updateFrameState_(extent, resolution, projection); + var frameState = this.updateFrameState_(currentExtent, resolution, projection); var imageCanvas = new ol.ImageCanvas( - extent, resolution, 1, this.getAttributions(), canvas, + currentExtent, resolution, 1, this.getAttributions(), canvas, this.composeFrame_.bind(this, frameState)); this.renderedImageCanvas_ = imageCanvas; this.renderedState_ = { - extent: extent, + extent: currentExtent, resolution: resolution, revision: this.getRevision() };