diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index f54a704e20..b7a03a87ca 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -47,10 +47,11 @@ ol.render.canvas.Instruction = { * @constructor * @implements {ol.render.IVectorContext} * @param {number} tolerance Tolerance. + * @param {ol.Extent} maxExtent Maximum extent. * @protected * @struct */ -ol.render.canvas.Replay = function(tolerance) { +ol.render.canvas.Replay = function(tolerance, maxExtent) { /** * @protected @@ -58,6 +59,12 @@ ol.render.canvas.Replay = function(tolerance) { */ this.tolerance = tolerance; + /** + * @protected + * @type {ol.Extent} + */ + this.maxExtent = maxExtent; + /** * @private * @type {Array.<*>} @@ -582,12 +589,13 @@ ol.render.canvas.Replay.prototype.setTextStyle = goog.abstractMethod; * @constructor * @extends {ol.render.canvas.Replay} * @param {number} tolerance Tolerance. + * @param {ol.Extent} maxExtent Maximum extent. * @protected * @struct */ -ol.render.canvas.ImageReplay = function(tolerance) { +ol.render.canvas.ImageReplay = function(tolerance, maxExtent) { - goog.base(this, tolerance); + goog.base(this, tolerance, maxExtent); /** * @private @@ -810,12 +818,13 @@ ol.render.canvas.ImageReplay.prototype.setImageStyle = function(imageStyle) { * @constructor * @extends {ol.render.canvas.Replay} * @param {number} tolerance Tolerance. + * @param {ol.Extent} maxExtent Maximum extent. * @protected * @struct */ -ol.render.canvas.LineStringReplay = function(tolerance) { +ol.render.canvas.LineStringReplay = function(tolerance, maxExtent) { - goog.base(this, tolerance); + goog.base(this, tolerance, maxExtent); /** * @private @@ -1027,12 +1036,13 @@ ol.render.canvas.LineStringReplay.prototype.setFillStrokeStyle = * @constructor * @extends {ol.render.canvas.Replay} * @param {number} tolerance Tolerance. + * @param {ol.Extent} maxExtent Maximum extent. * @protected * @struct */ -ol.render.canvas.PolygonReplay = function(tolerance) { +ol.render.canvas.PolygonReplay = function(tolerance, maxExtent) { - goog.base(this, tolerance); + goog.base(this, tolerance, maxExtent); /** * @private @@ -1360,12 +1370,13 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyles_ = function() { * @constructor * @extends {ol.render.canvas.Replay} * @param {number} tolerance Tolerance. + * @param {ol.Extent} maxExtent Maximum extent. * @protected * @struct */ -ol.render.canvas.TextReplay = function(tolerance) { +ol.render.canvas.TextReplay = function(tolerance, maxExtent) { - goog.base(this, tolerance); + goog.base(this, tolerance, maxExtent); /** * @private @@ -1659,9 +1670,10 @@ ol.render.canvas.TextReplay.prototype.setTextStyle = function(textStyle) { * @constructor * @implements {ol.render.IReplayGroup} * @param {number} tolerance Tolerance. + * @param {ol.Extent} maxExtent Max extent. * @struct */ -ol.render.canvas.ReplayGroup = function(tolerance) { +ol.render.canvas.ReplayGroup = function(tolerance, maxExtent) { /** * @private @@ -1669,6 +1681,12 @@ ol.render.canvas.ReplayGroup = function(tolerance) { */ this.tolerance_ = tolerance; + /** + * @private + * @type {ol.Extent} + */ + this.maxExtent_ = maxExtent; + /** * @private * @type {Object.} + * function(new: ol.render.canvas.Replay, number, ol.Extent)>} */ ol.render.canvas.BATCH_CONSTRUCTORS_ = { 'Image': ol.render.canvas.ImageReplay, diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 47c786aa5c..02f30f3dd9 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -212,7 +212,7 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = styleFunction = ol.feature.defaultStyleFunction; } var tolerance = frameStateResolution / (2 * pixelRatio); - var replayGroup = new ol.render.canvas.ReplayGroup(tolerance); + var replayGroup = new ol.render.canvas.ReplayGroup(tolerance, extent); vectorSource.forEachFeatureInExtent(extent, /** * @param {ol.Feature} feature Feature. diff --git a/src/ol/source/imagevectorsource.js b/src/ol/source/imagevectorsource.js index 7ec8e04888..16861f4bfc 100644 --- a/src/ol/source/imagevectorsource.js +++ b/src/ol/source/imagevectorsource.js @@ -111,7 +111,7 @@ ol.source.ImageVector.prototype.canvasFunctionInternal_ = function(extent, resolution, pixelRatio, size, projection) { var tolerance = resolution / (2 * pixelRatio); - var replayGroup = new ol.render.canvas.ReplayGroup(tolerance); + var replayGroup = new ol.render.canvas.ReplayGroup(tolerance, extent); var loading = false; this.source_.forEachFeatureInExtent(extent,