No composeFrame if prepareFrame returns false

This commit is contained in:
Éric Lemoine
2014-08-22 18:08:26 +02:00
parent 7a2bad543f
commit def1af4492
10 changed files with 22 additions and 15 deletions

View File

@@ -175,6 +175,8 @@ ol.renderer.webgl.ImageLayer.prototype.prepareFrame =
this.updateAttributions(frameState.attributions, image.getAttributions());
this.updateLogos(frameState, imageSource);
}
return true;
};

View File

@@ -2,6 +2,7 @@
goog.provide('ol.renderer.webgl.Map');
goog.require('goog.array');
goog.require('goog.asserts');
goog.require('goog.dom');
goog.require('goog.dom.TagName');
@@ -448,23 +449,19 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) {
var layerStatesToDraw = [];
var layerStatesArray = frameState.layerStatesArray;
var viewResolution = frameState.viewState.resolution;
var i, ii, layerState;
var i, ii, layerRenderer, layerState;
for (i = 0, ii = layerStatesArray.length; i < ii; ++i) {
layerState = layerStatesArray[i];
if (ol.layer.Layer.visibleAtResolution(layerState, viewResolution) &&
layerState.sourceState == ol.source.State.READY) {
layerStatesToDraw.push(layerState);
layerRenderer = this.getLayerRenderer(layerState.layer);
goog.asserts.assertInstanceof(layerRenderer, ol.renderer.webgl.Layer);
if (layerRenderer.prepareFrame(frameState, layerState)) {
layerStatesToDraw.push(layerState);
}
}
}
var layerRenderer;
for (i = 0, ii = layerStatesToDraw.length; i < ii; ++i) {
layerState = layerStatesToDraw[i];
layerRenderer = this.getLayerRenderer(layerState.layer);
goog.asserts.assertInstanceof(layerRenderer, ol.renderer.webgl.Layer);
layerRenderer.prepareFrame(frameState, layerState);
}
var width = frameState.size[0] * frameState.pixelRatio;
var height = frameState.size[1] * frameState.pixelRatio;
if (this.canvas_.width != width || this.canvas_.height != height) {

View File

@@ -331,4 +331,5 @@ ol.renderer.webgl.TileLayer.prototype.prepareFrame =
-0.5,
0);
return true;
};