Use a snapshot of the frameState extent

This commit is contained in:
Andreas Hocevar
2016-05-04 17:13:27 -04:00
parent ff37fe128f
commit 5c76cb01af
+7 -6
View File
@@ -219,15 +219,16 @@ ol.source.Raster.prototype.getImage = function(extent, resolution, pixelRatio, p
return null; return null;
} }
if (!this.isDirty_(extent, resolution)) { var currentExtent = extent.slice();
if (!this.isDirty_(currentExtent, resolution)) {
return this.renderedImageCanvas_; return this.renderedImageCanvas_;
} }
var context = this.canvasContext_; var context = this.canvasContext_;
var canvas = context.canvas; var canvas = context.canvas;
var width = Math.round(ol.extent.getWidth(extent) / resolution); var width = Math.round(ol.extent.getWidth(currentExtent) / resolution);
var height = Math.round(ol.extent.getHeight(extent) / resolution); var height = Math.round(ol.extent.getHeight(currentExtent) / resolution);
if (width !== canvas.width || if (width !== canvas.width ||
height !== canvas.height) { height !== canvas.height) {
@@ -235,16 +236,16 @@ ol.source.Raster.prototype.getImage = function(extent, resolution, pixelRatio, p
canvas.height = height; canvas.height = height;
} }
var frameState = this.updateFrameState_(extent, resolution, projection); var frameState = this.updateFrameState_(currentExtent, resolution, projection);
var imageCanvas = new ol.ImageCanvas( var imageCanvas = new ol.ImageCanvas(
extent, resolution, 1, this.getAttributions(), canvas, currentExtent, resolution, 1, this.getAttributions(), canvas,
this.composeFrame_.bind(this, frameState)); this.composeFrame_.bind(this, frameState));
this.renderedImageCanvas_ = imageCanvas; this.renderedImageCanvas_ = imageCanvas;
this.renderedState_ = { this.renderedState_ = {
extent: extent, extent: currentExtent,
resolution: resolution, resolution: resolution,
revision: this.getRevision() revision: this.getRevision()
}; };