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.
This commit is contained in:
Tom Payne
2012-11-02 17:10:41 +01:00
parent 1de8821739
commit dfd495153d
3 changed files with 19 additions and 12 deletions

View File

@@ -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;
};

View File

@@ -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;
/**

View File

@@ -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();