From dfd495153d3c4d8c0077c951a7f662deffc49aeb Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 2 Nov 2012 17:10:41 +0100 Subject: [PATCH 1/2] Make ol.renderer.Map behave like a null renderer, fixes #82 With this patch, creating a new ol.renderer.Map will return a map renderer that does nothing. Previously, it could cause assertion failures. --- src/ol/renderer/dom/dommaprenderer.js | 10 +++++++++- src/ol/renderer/maprenderer.js | 14 ++++---------- src/ol/renderer/webgl/webglmaprenderer.js | 7 ++++++- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/ol/renderer/dom/dommaprenderer.js b/src/ol/renderer/dom/dommaprenderer.js index 69154b7315..82f8d5cd1c 100644 --- a/src/ol/renderer/dom/dommaprenderer.js +++ b/src/ol/renderer/dom/dommaprenderer.js @@ -228,7 +228,15 @@ ol.renderer.dom.Map.prototype.render = function() { this.renderedRotation_ = mapRotation; this.renderedSize_ = mapSize; - return goog.base(this, 'render'); + var animate = false; + this.forEachReadyVisibleLayer(function(layer, layerRenderer) { + if (layerRenderer.render()) { + animate = true; + } + }); + + return animate; + }; diff --git a/src/ol/renderer/maprenderer.js b/src/ol/renderer/maprenderer.js index 1b009953a5..7faa0c2ac8 100644 --- a/src/ol/renderer/maprenderer.js +++ b/src/ol/renderer/maprenderer.js @@ -115,7 +115,9 @@ ol.renderer.Map.prototype.canRotate = goog.functions.FALSE; * @protected * @return {ol.renderer.Layer} layerRenderer Layer renderer. */ -ol.renderer.Map.prototype.createLayerRenderer = goog.abstractMethod; +ol.renderer.Map.prototype.createLayerRenderer = function(layer) { + return null; +}; /** @@ -310,15 +312,7 @@ ol.renderer.Map.prototype.removeLayerRenderer = function(layer) { /** * @return {boolean} Animating. */ -ol.renderer.Map.prototype.render = function() { - var animate = false; - this.forEachReadyVisibleLayer(function(layer, layerRenderer) { - if (layerRenderer.render()) { - animate = true; - } - }); - return animate; -}; +ol.renderer.Map.prototype.render = goog.functions.FALSE; /** diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index bb0d1c6b9f..494a6198ca 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -562,7 +562,12 @@ ol.renderer.webgl.Map.prototype.render = function() { this.canvasSize_ = size; } - var animate = goog.base(this, 'render'); + var animate = false; + this.forEachReadyVisibleLayer(function(layer, layerRenderer) { + if (layerRenderer.render()) { + animate = true; + } + }); var gl = this.getGL(); From 4d3726d183575af1af5c724e0ab262f92e80830f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 2 Nov 2012 18:20:52 +0100 Subject: [PATCH 2/2] Use goog.functions.NULL instead of goog.nullFunction, thanks @elemoine --- src/ol/renderer/maprenderer.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ol/renderer/maprenderer.js b/src/ol/renderer/maprenderer.js index 7faa0c2ac8..2b33a6810e 100644 --- a/src/ol/renderer/maprenderer.js +++ b/src/ol/renderer/maprenderer.js @@ -2,6 +2,7 @@ goog.provide('ol.renderer.Map'); goog.require('goog.Disposable'); goog.require('goog.events'); +goog.require('goog.functions'); goog.require('goog.fx.anim'); goog.require('goog.fx.anim.Animated'); goog.require('goog.vec.Mat4'); @@ -202,7 +203,7 @@ ol.renderer.Map.prototype.getPixelFromCoordinate = function(coordinate) { /** * Handle background color changed. */ -ol.renderer.Map.prototype.handleBackgroundColorChanged = goog.nullFunction; +ol.renderer.Map.prototype.handleBackgroundColorChanged = goog.functions.NULL; /**