From 2f5797bc1657ca45f69aef0e7e5a79c262d2592b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 18 Apr 2013 12:52:43 +0200 Subject: [PATCH] Always create layer renderer, even when layer is invisible or not ready This is necessary because it is the layer renderer that is responsible for triggering a render when a layer loads or becomes visible. --- src/ol/renderer/canvas/canvasmaprenderer.js | 7 ++----- src/ol/renderer/dom/dommaprenderer.js | 9 ++++----- src/ol/renderer/webgl/webglmaprenderer.js | 9 ++++----- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/src/ol/renderer/canvas/canvasmaprenderer.js b/src/ol/renderer/canvas/canvasmaprenderer.js index 0de485157b..3625bdbf48 100644 --- a/src/ol/renderer/canvas/canvasmaprenderer.js +++ b/src/ol/renderer/canvas/canvasmaprenderer.js @@ -121,14 +121,11 @@ ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) { goog.array.forEach(frameState.layersArray, function(layer) { + var layerRenderer = this.getLayerRenderer(layer); var layerState = frameState.layerStates[goog.getUid(layer)]; - if (!layerState.visible) { - return; - } else if (!layerState.ready) { - frameState.animate = true; + if (!layerState.visible || !layerState.ready) { return; } - var layerRenderer = this.getLayerRenderer(layer); layerRenderer.renderFrame(frameState, layerState); var image = layerRenderer.getImage(); diff --git a/src/ol/renderer/dom/dommaprenderer.js b/src/ol/renderer/dom/dommaprenderer.js index 14072ba424..00cb83890e 100644 --- a/src/ol/renderer/dom/dommaprenderer.js +++ b/src/ol/renderer/dom/dommaprenderer.js @@ -79,12 +79,11 @@ ol.renderer.dom.Map.prototype.renderFrame = function(frameState) { } goog.array.forEach(frameState.layersArray, function(layer) { - var layerState = frameState.layerStates[goog.getUid(layer)]; - if (!layerState.ready) { - return; - } var layerRenderer = this.getLayerRenderer(layer); - layerRenderer.renderFrame(frameState, layerState); + var layerState = frameState.layerStates[goog.getUid(layer)]; + if (layerState.visible && layerState.ready) { + layerRenderer.renderFrame(frameState, layerState); + } }, this); if (!this.renderedVisible_) { diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index 465a2ab8d2..32579a1bcd 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -525,12 +525,11 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) { ++this.textureCacheFrameMarkerCount_; goog.array.forEach(frameState.layersArray, function(layer) { - var layerState = frameState.layerStates[goog.getUid(layer)]; - if (!layerState.visible || !layerState.ready) { - return; - } var layerRenderer = this.getLayerRenderer(layer); - layerRenderer.renderFrame(frameState, layerState); + var layerState = frameState.layerStates[goog.getUid(layer)]; + if (layerState.visible && layerState.ready) { + layerRenderer.renderFrame(frameState, layerState); + } }, this); var size = frameState.size;