From 1dfe571b769737a8e10d5a1859b52e8c8d2ec6ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 27 Jan 2014 13:56:55 +0100 Subject: [PATCH 1/4] Vector renderer uses the layer revision --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 6e4a9e4edb..45fcf8b1fd 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -189,10 +189,11 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = var frameStateExtent = frameState.extent; var frameStateResolution = frameState.view2DState.resolution; var pixelRatio = frameState.pixelRatio; + var vectorLayerRevision = vectorLayer.getRevision(); if (!this.dirty_ && this.renderedResolution_ == frameStateResolution && - this.renderedRevision_ == vectorSource.getRevision() && + this.renderedRevision_ == vectorLayerRevision && ol.extent.containsExtent(this.renderedExtent_, frameStateExtent)) { return; } @@ -230,7 +231,7 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = replayGroup.finish(); this.renderedResolution_ = frameStateResolution; - this.renderedRevision_ = vectorSource.getRevision(); + this.renderedRevision_ = vectorLayerRevision; if (!replayGroup.isEmpty()) { this.replayGroup_ = replayGroup; } From ea22feed99bc23aceaf1aa13dcdb38a55ad1708c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 28 Jan 2014 20:57:15 +0100 Subject: [PATCH 2/4] Export ol.Observable#dispatchChangeEvent --- src/ol/observable.exports | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/observable.exports b/src/ol/observable.exports index 1721abd5bd..cd9d88898b 100644 --- a/src/ol/observable.exports +++ b/src/ol/observable.exports @@ -1,4 +1,5 @@ @exportSymbol ol.Observable +@exportProperty ol.Observable.prototype.dispatchChangeEvent @exportProperty ol.Observable.prototype.on @exportProperty ol.Observable.prototype.once @exportProperty ol.Observable.prototype.un From 0eb72667c93f5baf4b3e40ba4c2dbf67f1e1ea52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 28 Jan 2014 21:35:38 +0100 Subject: [PATCH 3/4] Add comments for setStyleFunction --- src/ol/layer/vectorlayer.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ol/layer/vectorlayer.js b/src/ol/layer/vectorlayer.js index f91af05f19..e34ada59f3 100644 --- a/src/ol/layer/vectorlayer.js +++ b/src/ol/layer/vectorlayer.js @@ -77,6 +77,9 @@ goog.exportProperty( /** + * If the styles are changed by setting a new style function or by changing the + * value returned by the style function then `dispatchChangeEvent` should be + * called on the layer for the layer to be refreshed on the screen. * @param {ol.feature.StyleFunction|undefined} styleFunction Style function. */ ol.layer.Vector.prototype.setStyleFunction = function(styleFunction) { From d49d96d651e4a43efc49ea7d1a6b1d807d4dbfa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 28 Jan 2014 21:36:32 +0100 Subject: [PATCH 4/4] Add comments for the canvasFunction option --- src/objectliterals.jsdoc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 6c1c23e5f1..80bb5cb20a 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -652,7 +652,14 @@ /** * @typedef {Object} olx.source.ImageCanvasOptions * @property {Array.|undefined} attributions Attributions. - * @property {ol.CanvasFunctionType} canvasFunction Canvas function. + * @property {ol.CanvasFunctionType} canvasFunction Canvas function. The function + * returning the canvas element used by the source as an image. The arguments + * passed to the function are: `{ol.Extent}` the image extent, `{number}` the + * image resolution, `{number}` the device pixel ratio, `{ol.Size}` the image + * size, and `{ol.proj.Projection}` the image projection. The canvas returned + * by this function is cached by the source. If the value returned by the + * function is later changed then `dispatchChangeEvent` should be called on + * the source for the source to invalidate the current cached image. * @property {ol.Extent|undefined} extent Extent. * @property {string|undefined} logo Logo. * @property {ol.proj.ProjectionLike} projection Projection.