Factor out layersToDraw
This commit is contained in:
@@ -379,21 +379,28 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) {
|
|||||||
this.textureCache_.set((-frameState.index).toString(), null);
|
this.textureCache_.set((-frameState.index).toString(), null);
|
||||||
++this.textureCacheFrameMarkerCount_;
|
++this.textureCacheFrameMarkerCount_;
|
||||||
|
|
||||||
|
var layersToDraw = [];
|
||||||
var layersArray = frameState.layersArray;
|
var layersArray = frameState.layersArray;
|
||||||
var viewResolution = frameState.view2DState.resolution;
|
var viewResolution = frameState.view2DState.resolution;
|
||||||
var i, ii, layer, layerRenderer, layerState;
|
var i, ii, layer, layerRenderer, layerState;
|
||||||
for (i = 0, ii = layersArray.length; i < ii; ++i) {
|
for (i = 0, ii = layersArray.length; i < ii; ++i) {
|
||||||
layer = layersArray[i];
|
layer = layersArray[i];
|
||||||
layerRenderer = this.getLayerRenderer(layer);
|
|
||||||
layerState = frameState.layerStates[goog.getUid(layer)];
|
layerState = frameState.layerStates[goog.getUid(layer)];
|
||||||
if (layerState.visible &&
|
if (layerState.visible &&
|
||||||
layerState.sourceState == ol.source.State.READY &&
|
layerState.sourceState == ol.source.State.READY &&
|
||||||
viewResolution < layerState.maxResolution &&
|
viewResolution < layerState.maxResolution &&
|
||||||
viewResolution >= layerState.minResolution) {
|
viewResolution >= layerState.minResolution) {
|
||||||
layerRenderer.prepareFrame(frameState, layerState);
|
layersToDraw.push(layer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 0, ii = layersToDraw.length; i < ii; ++i) {
|
||||||
|
layer = layersToDraw[i];
|
||||||
|
layerRenderer = this.getLayerRenderer(layer);
|
||||||
|
layerState = frameState.layerStates[goog.getUid(layer)];
|
||||||
|
layerRenderer.prepareFrame(frameState, layerState);
|
||||||
|
}
|
||||||
|
|
||||||
var size = frameState.size;
|
var size = frameState.size;
|
||||||
if (this.canvas_.width != size[0] || this.canvas_.height != size[1]) {
|
if (this.canvas_.width != size[0] || this.canvas_.height != size[1]) {
|
||||||
this.canvas_.width = size[0];
|
this.canvas_.width = size[0];
|
||||||
@@ -409,16 +416,11 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) {
|
|||||||
|
|
||||||
context.bindBuffer(goog.webgl.ARRAY_BUFFER, this.arrayBuffer_);
|
context.bindBuffer(goog.webgl.ARRAY_BUFFER, this.arrayBuffer_);
|
||||||
|
|
||||||
for (i = 0, ii = layersArray.length; i < ii; ++i) {
|
for (i = 0, ii = layersToDraw.length; i < ii; ++i) {
|
||||||
layer = layersArray[i];
|
layer = layersToDraw[i];
|
||||||
layerState = frameState.layerStates[goog.getUid(layer)];
|
layerState = frameState.layerStates[goog.getUid(layer)];
|
||||||
if (layerState.visible &&
|
layerRenderer = this.getLayerRenderer(layer);
|
||||||
layerState.sourceState == ol.source.State.READY &&
|
layerRenderer.composeFrame(frameState, layerState, context);
|
||||||
viewResolution < layerState.maxResolution &&
|
|
||||||
viewResolution >= layerState.minResolution) {
|
|
||||||
layerRenderer = this.getLayerRenderer(layer);
|
|
||||||
layerRenderer.composeFrame(frameState, layerState, context);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.renderedVisible_) {
|
if (!this.renderedVisible_) {
|
||||||
|
|||||||
Reference in New Issue
Block a user