From df6e13bdc0d10e7c510c15c7376b0eeb09e45723 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 11 Apr 2013 23:22:40 +0200 Subject: [PATCH 1/6] Clean up ol.renderer.dom.Map.createLayerRenderer --- src/ol/renderer/dom/dommaprenderer.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ol/renderer/dom/dommaprenderer.js b/src/ol/renderer/dom/dommaprenderer.js index 9bd2d6d5c7..f821be3f07 100644 --- a/src/ol/renderer/dom/dommaprenderer.js +++ b/src/ol/renderer/dom/dommaprenderer.js @@ -56,8 +56,10 @@ ol.renderer.dom.Map.prototype.createLayerRenderer = function(layer) { layerRenderer = new ol.renderer.dom.TileLayer(this, layer); } else if (layer instanceof ol.layer.ImageLayer) { layerRenderer = new ol.renderer.dom.ImageLayer(this, layer); + } else { + goog.asserts.fail(); + return null; } - goog.asserts.assert(goog.isDef(layerRenderer)); goog.dom.appendChild(this.layersPane_, layerRenderer.getTarget()); return layerRenderer; }; From ee817ba4a29925925990829757cfa0c28b439791 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 11 Apr 2013 23:23:01 +0200 Subject: [PATCH 2/6] Clean up ol.renderer.webgl.Map.createLayerRenderer --- src/ol/renderer/webgl/webglmaprenderer.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index 092f4d0f25..aeafa5c348 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -296,15 +296,14 @@ ol.renderer.webgl.Map.prototype.bindTileTexture = * @inheritDoc */ ol.renderer.webgl.Map.prototype.createLayerRenderer = function(layer) { - var layerRenderer = null; if (layer instanceof ol.layer.TileLayer) { - layerRenderer = new ol.renderer.webgl.TileLayer(this, layer); + return new ol.renderer.webgl.TileLayer(this, layer); } else if (layer instanceof ol.layer.ImageLayer) { - layerRenderer = new ol.renderer.webgl.ImageLayer(this, layer); + return new ol.renderer.webgl.ImageLayer(this, layer); } else { goog.asserts.fail(); + return null; } - return layerRenderer; }; From f0106f391a3c4afa5b4529ae874e2dd9aac8589a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 11 Apr 2013 23:25:21 +0200 Subject: [PATCH 3/6] Make ol.renderer.Map.map property private --- src/ol/renderer/maprenderer.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ol/renderer/maprenderer.js b/src/ol/renderer/maprenderer.js index f073b3e980..b05a14a0b7 100644 --- a/src/ol/renderer/maprenderer.js +++ b/src/ol/renderer/maprenderer.js @@ -35,10 +35,10 @@ ol.renderer.Map = function(container, map) { this.container_ = container; /** - * @protected + * @private * @type {ol.Map} */ - this.map = map; + this.map_ = map; /** * @protected @@ -166,7 +166,7 @@ ol.renderer.Map.prototype.getLayerRenderer = function(layer) { * @return {ol.Map} Map. */ ol.renderer.Map.prototype.getMap = function() { - return this.map; + return this.map_; }; @@ -199,7 +199,7 @@ ol.renderer.Map.prototype.handleLayersChanged = function() { goog.array.forEach(this.layersListenerKeys_, goog.events.unlistenByKey); this.layersListenerKeys_ = null; } - var layers = this.map.getLayers(); + var layers = this.getMap().getLayers(); if (goog.isDefAndNotNull(layers)) { layers.forEach(this.addLayer, this); this.layersListenerKeys_ = [ From d855a35446f5e7b74cadaf7f824614d507fcece7 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 11 Apr 2013 23:50:25 +0200 Subject: [PATCH 4/6] Make renderer layer management private --- src/ol/renderer/maprenderer.js | 81 +++++++++++++---------- src/ol/renderer/webgl/webglmaprenderer.js | 2 +- 2 files changed, 46 insertions(+), 37 deletions(-) diff --git a/src/ol/renderer/maprenderer.js b/src/ol/renderer/maprenderer.js index b05a14a0b7..870cb37fdb 100644 --- a/src/ol/renderer/maprenderer.js +++ b/src/ol/renderer/maprenderer.js @@ -41,10 +41,10 @@ ol.renderer.Map = function(container, map) { this.map_ = map; /** - * @protected + * @private * @type {Object.} */ - this.layerRenderers = {}; + this.layerRenderers_ = {}; // // We listen to layer add/remove to add/remove layer renderers. @@ -57,7 +57,7 @@ ol.renderer.Map = function(container, map) { this.mapLayersChangedListenerKey_ = goog.events.listen( map, ol.Object.getChangedEventType(ol.MapProperty.LAYERS), - this.handleLayersChanged, false, this); + this.handleLayersChanged_, false, this); /** * @private @@ -77,11 +77,11 @@ goog.inherits(ol.renderer.Map, goog.Disposable); /** * @param {ol.layer.Layer} layer Layer. - * @protected + * @private */ -ol.renderer.Map.prototype.addLayer = function(layer) { +ol.renderer.Map.prototype.addLayer_ = function(layer) { var layerRenderer = this.createLayerRenderer(layer); - this.setLayerRenderer(layer, layerRenderer); + this.setLayerRenderer_(layer, layerRenderer); this.getMap().render(); }; @@ -132,7 +132,7 @@ ol.renderer.Map.prototype.createLayerRenderer = function(layer) { * @inheritDoc */ ol.renderer.Map.prototype.disposeInternal = function() { - goog.object.forEach(this.layerRenderers, function(layerRenderer) { + goog.object.forEach(this.layerRenderers_, function(layerRenderer) { goog.dispose(layerRenderer); }); goog.events.unlistenByKey(this.mapLayersChangedListenerKey_); @@ -156,12 +156,21 @@ ol.renderer.Map.prototype.getCanvas = goog.functions.NULL; */ ol.renderer.Map.prototype.getLayerRenderer = function(layer) { var layerKey = goog.getUid(layer); - var layerRenderer = this.layerRenderers[layerKey]; + var layerRenderer = this.layerRenderers_[layerKey]; goog.asserts.assert(goog.isDef(layerRenderer)); return layerRenderer; }; +/** + * @protected + * @return {Object.} Layer renderers. + */ +ol.renderer.Map.prototype.getLayerRenderers = function() { + return this.layerRenderers_; +}; + + /** * @return {ol.Map} Map. */ @@ -172,41 +181,41 @@ ol.renderer.Map.prototype.getMap = function() { /** * @param {goog.events.Event} event Event. - * @protected + * @private */ -ol.renderer.Map.prototype.handleLayerRendererChange = function(event) { +ol.renderer.Map.prototype.handleLayerRendererChange_ = function(event) { this.getMap().render(); }; /** * @param {ol.CollectionEvent} collectionEvent Collection event. - * @protected + * @private */ -ol.renderer.Map.prototype.handleLayersAdd = function(collectionEvent) { +ol.renderer.Map.prototype.handleLayersAdd_ = function(collectionEvent) { var layer = /** @type {ol.layer.Layer} */ (collectionEvent.elem); - this.addLayer(layer); + this.addLayer_(layer); }; /** - * @protected + * @private */ -ol.renderer.Map.prototype.handleLayersChanged = function() { - goog.disposeAll(goog.object.getValues(this.layerRenderers)); - this.layerRenderers = {}; +ol.renderer.Map.prototype.handleLayersChanged_ = function() { + goog.disposeAll(goog.object.getValues(this.layerRenderers_)); + this.layerRenderers_ = {}; if (!goog.isNull(this.layersListenerKeys_)) { goog.array.forEach(this.layersListenerKeys_, goog.events.unlistenByKey); this.layersListenerKeys_ = null; } var layers = this.getMap().getLayers(); if (goog.isDefAndNotNull(layers)) { - layers.forEach(this.addLayer, this); + layers.forEach(this.addLayer_, this); this.layersListenerKeys_ = [ goog.events.listen(layers, ol.CollectionEventType.ADD, - this.handleLayersAdd, false, this), + this.handleLayersAdd_, false, this), goog.events.listen(layers, ol.CollectionEventType.REMOVE, - this.handleLayersRemove, false, this) + this.handleLayersRemove_, false, this) ]; } }; @@ -214,20 +223,20 @@ ol.renderer.Map.prototype.handleLayersChanged = function() { /** * @param {ol.CollectionEvent} collectionEvent Collection event. - * @protected + * @private */ -ol.renderer.Map.prototype.handleLayersRemove = function(collectionEvent) { +ol.renderer.Map.prototype.handleLayersRemove_ = function(collectionEvent) { var layer = /** @type {ol.layer.Layer} */ (collectionEvent.elem); - this.removeLayer(layer); + this.removeLayer_(layer); }; /** * @param {ol.layer.Layer} layer Layer. - * @protected + * @private */ -ol.renderer.Map.prototype.removeLayer = function(layer) { - goog.dispose(this.removeLayerRenderer(layer)); +ol.renderer.Map.prototype.removeLayer_ = function(layer) { + goog.dispose(this.removeLayerRenderer_(layer)); this.getMap().render(); }; @@ -235,13 +244,13 @@ ol.renderer.Map.prototype.removeLayer = function(layer) { /** * @param {ol.layer.Layer} layer Layer. * @return {ol.renderer.Layer} Layer renderer. - * @protected + * @private */ -ol.renderer.Map.prototype.removeLayerRenderer = function(layer) { +ol.renderer.Map.prototype.removeLayerRenderer_ = function(layer) { var layerKey = goog.getUid(layer); - if (layerKey in this.layerRenderers) { - var layerRenderer = this.layerRenderers[layerKey]; - delete this.layerRenderers[layerKey]; + if (layerKey in this.layerRenderers_) { + var layerRenderer = this.layerRenderers_[layerKey]; + delete this.layerRenderers_[layerKey]; goog.events.unlistenByKey(this.layerRendererChangeListenKeys_[layerKey]); delete this.layerRendererChangeListenKeys_[layerKey]; return layerRenderer; @@ -261,14 +270,14 @@ ol.renderer.Map.prototype.renderFrame = goog.nullFunction; /** * @param {ol.layer.Layer} layer Layer. * @param {ol.renderer.Layer} layerRenderer Layer renderer. - * @protected + * @private */ -ol.renderer.Map.prototype.setLayerRenderer = function(layer, layerRenderer) { +ol.renderer.Map.prototype.setLayerRenderer_ = function(layer, layerRenderer) { var layerKey = goog.getUid(layer); - goog.asserts.assert(!(layerKey in this.layerRenderers)); - this.layerRenderers[layerKey] = layerRenderer; + goog.asserts.assert(!(layerKey in this.layerRenderers_)); + this.layerRenderers_[layerKey] = layerRenderer; goog.asserts.assert(!(layerKey in this.layerRendererChangeListenKeys_)); this.layerRendererChangeListenKeys_[layerKey] = goog.events.listen( layerRenderer, goog.events.EventType.CHANGE, - this.handleLayerRendererChange, false, this); + this.handleLayerRendererChange_, false, this); }; diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index aeafa5c348..77b03c3d36 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -463,7 +463,7 @@ ol.renderer.webgl.Map.prototype.handleWebGLContextLost = function(event) { this.programCache_ = {}; this.textureCache_.clear(); this.textureCacheFrameMarkerCount_ = 0; - goog.object.forEach(this.layerRenderers, function(layerRenderer) { + goog.object.forEach(this.getLayerRenderers(), function(layerRenderer) { layerRenderer.handleWebGLContextLost(); }); }; From 0371b891a657706c55b6d9f1614389ba230d3d00 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 12 Apr 2013 00:48:35 +0200 Subject: [PATCH 5/6] Tighten up permission on layer renderers --- src/ol/renderer/canvas/canvasimagelayerrenderer.js | 1 + src/ol/renderer/canvas/canvastilelayerrenderer.js | 1 + src/ol/renderer/dom/domimagelayerrenderer.js | 6 ++++-- src/ol/renderer/dom/domlayerrenderer.js | 1 + src/ol/renderer/dom/domtilelayerrenderer.js | 1 + src/ol/renderer/layerrenderer.js | 4 ++++ src/ol/renderer/webgl/webglimagelayerrenderer.js | 1 + src/ol/renderer/webgl/webgllayerrenderer.js | 1 + src/ol/renderer/webgl/webgltilelayerrenderer.js | 1 + 9 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/ol/renderer/canvas/canvasimagelayerrenderer.js b/src/ol/renderer/canvas/canvasimagelayerrenderer.js index 853b6a03bd..47385527af 100644 --- a/src/ol/renderer/canvas/canvasimagelayerrenderer.js +++ b/src/ol/renderer/canvas/canvasimagelayerrenderer.js @@ -48,6 +48,7 @@ ol.renderer.canvas.ImageLayer.prototype.getImage = function() { /** + * @protected * @return {ol.layer.ImageLayer} Single image layer. */ ol.renderer.canvas.ImageLayer.prototype.getImageLayer = function() { diff --git a/src/ol/renderer/canvas/canvastilelayerrenderer.js b/src/ol/renderer/canvas/canvastilelayerrenderer.js index ce334386a7..f7dbd66813 100644 --- a/src/ol/renderer/canvas/canvastilelayerrenderer.js +++ b/src/ol/renderer/canvas/canvastilelayerrenderer.js @@ -86,6 +86,7 @@ ol.renderer.canvas.TileLayer.prototype.getImage = function() { /** + * @protected * @return {ol.layer.TileLayer} Tile layer. */ ol.renderer.canvas.TileLayer.prototype.getTileLayer = function() { diff --git a/src/ol/renderer/dom/domimagelayerrenderer.js b/src/ol/renderer/dom/domimagelayerrenderer.js index f74e213dfe..f0feaed037 100644 --- a/src/ol/renderer/dom/domimagelayerrenderer.js +++ b/src/ol/renderer/dom/domimagelayerrenderer.js @@ -45,6 +45,7 @@ goog.inherits(ol.renderer.dom.ImageLayer, ol.renderer.dom.Layer); /** + * @protected * @return {ol.layer.ImageLayer} Image layer. */ ol.renderer.dom.ImageLayer.prototype.getImageLayer = function() { @@ -109,7 +110,7 @@ ol.renderer.dom.ImageLayer.prototype.renderFrame = goog.dom.appendChild(this.target, imageElement); this.image_ = image; } - this.setTransform(transform); + this.setTransform_(transform); this.updateAttributions(frameState.attributions, image.getAttributions()); this.updateLogos(frameState, imageSource); @@ -120,8 +121,9 @@ ol.renderer.dom.ImageLayer.prototype.renderFrame = /** * @param {goog.vec.Mat4.AnyType} transform Transform. + * @private */ -ol.renderer.dom.ImageLayer.prototype.setTransform = function(transform) { +ol.renderer.dom.ImageLayer.prototype.setTransform_ = function(transform) { if (!goog.vec.Mat4.equals(transform, this.transform_)) { ol.dom.transformElement2D(this.target, transform, 6); goog.vec.Mat4.setFromArray(this.transform_, transform); diff --git a/src/ol/renderer/dom/domlayerrenderer.js b/src/ol/renderer/dom/domlayerrenderer.js index cf3ab548c1..04e6b94c8f 100644 --- a/src/ol/renderer/dom/domlayerrenderer.js +++ b/src/ol/renderer/dom/domlayerrenderer.js @@ -37,6 +37,7 @@ ol.renderer.dom.Layer.prototype.disposeInternal = function() { /** + * @protected * @return {!Element} Target. */ ol.renderer.dom.Layer.prototype.getTarget = function() { diff --git a/src/ol/renderer/dom/domtilelayerrenderer.js b/src/ol/renderer/dom/domtilelayerrenderer.js index 7236881298..197048b272 100644 --- a/src/ol/renderer/dom/domtilelayerrenderer.js +++ b/src/ol/renderer/dom/domtilelayerrenderer.js @@ -61,6 +61,7 @@ goog.inherits(ol.renderer.dom.TileLayer, ol.renderer.dom.Layer); /** + * @protected * @return {ol.layer.TileLayer} Tile layer. */ ol.renderer.dom.TileLayer.prototype.getTileLayer = function() { diff --git a/src/ol/renderer/layerrenderer.js b/src/ol/renderer/layerrenderer.js index 72b3db2bbd..7b9ee37c6f 100644 --- a/src/ol/renderer/layerrenderer.js +++ b/src/ol/renderer/layerrenderer.js @@ -81,6 +81,7 @@ ol.renderer.Layer.prototype.dispatchChangeEvent = function() { /** + * @protected * @return {ol.layer.Layer} Layer. */ ol.renderer.Layer.prototype.getLayer = function() { @@ -89,6 +90,7 @@ ol.renderer.Layer.prototype.getLayer = function() { /** + * @protected * @return {ol.Map} Map. */ ol.renderer.Layer.prototype.getMap = function() { @@ -97,6 +99,7 @@ ol.renderer.Layer.prototype.getMap = function() { /** + * @protected * @return {ol.renderer.Map} Map renderer. */ ol.renderer.Layer.prototype.getMapRenderer = function() { @@ -264,6 +267,7 @@ ol.renderer.Layer.prototype.updateUsedTiles = * determine if the tile is loaded. * @param {ol.source.TileSource} tileSource Tile source. * @param {ol.Projection} projection Projection. + * @protected * @return {function(number, number, number): ol.Tile} Returns a tile if it is * loaded. */ diff --git a/src/ol/renderer/webgl/webglimagelayerrenderer.js b/src/ol/renderer/webgl/webglimagelayerrenderer.js index c6b1e2f885..0af96b7796 100644 --- a/src/ol/renderer/webgl/webglimagelayerrenderer.js +++ b/src/ol/renderer/webgl/webglimagelayerrenderer.js @@ -72,6 +72,7 @@ ol.renderer.webgl.ImageLayer.prototype.createTexture_ = function(image) { /** + * @protected * @return {ol.layer.ImageLayer} Tile layer. */ ol.renderer.webgl.ImageLayer.prototype.getImageLayer = function() { diff --git a/src/ol/renderer/webgl/webgllayerrenderer.js b/src/ol/renderer/webgl/webgllayerrenderer.js index 0ba2fa0b02..c0ed01dabe 100644 --- a/src/ol/renderer/webgl/webgllayerrenderer.js +++ b/src/ol/renderer/webgl/webgllayerrenderer.js @@ -157,6 +157,7 @@ ol.renderer.webgl.Layer.prototype.getColorMatrix = function() { /** + * @protected * @return {ol.renderer.webgl.Map} MapRenderer. */ ol.renderer.webgl.Layer.prototype.getWebGLMapRenderer = function() { diff --git a/src/ol/renderer/webgl/webgltilelayerrenderer.js b/src/ol/renderer/webgl/webgltilelayerrenderer.js index e0bc1fa404..79369dc52c 100644 --- a/src/ol/renderer/webgl/webgltilelayerrenderer.js +++ b/src/ol/renderer/webgl/webgltilelayerrenderer.js @@ -88,6 +88,7 @@ ol.renderer.webgl.TileLayer.prototype.disposeInternal = function() { /** + * @protected * @return {ol.layer.TileLayer} Tile layer. */ ol.renderer.webgl.TileLayer.prototype.getTileLayer = function() { From be629a7ed8a0fafdd0b5979d7456f6a01767fcb4 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 12 Apr 2013 00:48:55 +0200 Subject: [PATCH 6/6] Sort jsdoc comments alphabetically --- src/ol/renderer/layerrenderer.js | 10 +++++----- src/ol/renderer/webgl/webglimagelayerrenderer.js | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/ol/renderer/layerrenderer.js b/src/ol/renderer/layerrenderer.js index 7b9ee37c6f..2ef8a7ea08 100644 --- a/src/ol/renderer/layerrenderer.js +++ b/src/ol/renderer/layerrenderer.js @@ -189,9 +189,9 @@ ol.renderer.Layer.prototype.renderFrame = goog.abstractMethod; /** - * @protected * @param {ol.FrameState} frameState Frame state. * @param {ol.source.TileSource} tileSource Tile source. + * @protected */ ol.renderer.Layer.prototype.scheduleExpireCache = function(frameState, tileSource) { @@ -206,10 +206,10 @@ ol.renderer.Layer.prototype.scheduleExpireCache = /** - * @protected * @param {Object.} attributionsSet Attributions * set (target). * @param {Array.} attributions Attributions (source). + * @protected */ ol.renderer.Layer.prototype.updateAttributions = function(attributionsSet, attributions) { @@ -225,9 +225,9 @@ ol.renderer.Layer.prototype.updateAttributions = /** - * @protected * @param {ol.FrameState} frameState Frame state. * @param {ol.source.Source} source Source. + * @protected */ ol.renderer.Layer.prototype.updateLogos = function(frameState, source) { var logo = source.getLogo(); @@ -238,11 +238,11 @@ ol.renderer.Layer.prototype.updateLogos = function(frameState, source) { /** - * @protected * @param {Object.>} usedTiles Used tiles. * @param {ol.source.TileSource} tileSource Tile source. * @param {number} z Z. * @param {ol.TileRange} tileRange Tile range. + * @protected */ ol.renderer.Layer.prototype.updateUsedTiles = function(usedTiles, tileSource, z, tileRange) { @@ -284,8 +284,8 @@ ol.renderer.Layer.prototype.createGetTileIfLoadedFunction = * @param {ol.Coordinate} center Center. * @param {number} resolution Resolution. * @param {ol.Size} size Size. - * @return {ol.Coordinate} Snapped center. * @protected + * @return {ol.Coordinate} Snapped center. */ ol.renderer.Layer.prototype.snapCenterToPixel = function(center, resolution, size) { diff --git a/src/ol/renderer/webgl/webglimagelayerrenderer.js b/src/ol/renderer/webgl/webglimagelayerrenderer.js index 0af96b7796..ca9546e714 100644 --- a/src/ol/renderer/webgl/webglimagelayerrenderer.js +++ b/src/ol/renderer/webgl/webglimagelayerrenderer.js @@ -37,8 +37,8 @@ goog.inherits(ol.renderer.webgl.ImageLayer, ol.renderer.webgl.Layer); /** - * @private * @param {ol.Image} image Image. + * @private * @return {WebGLTexture} Texture. */ ol.renderer.webgl.ImageLayer.prototype.createTexture_ = function(image) { @@ -148,13 +148,13 @@ ol.renderer.webgl.ImageLayer.prototype.renderFrame = /** - * @private * @param {number} canvasWidth Canvas width. * @param {number} canvasHeight Canvas height. * @param {ol.Coordinate} viewCenter View center. * @param {number} viewResolution View resolution. * @param {number} viewRotation View rotation. * @param {ol.Extent} imageExtent Image extent. + * @private */ ol.renderer.webgl.ImageLayer.prototype.updateProjectionMatrix_ = function(canvasWidth, canvasHeight, viewCenter,