Don't repeatedly render while waiting for tiles to load
Instead of going into an unnecessary animation loop, we can simply wait to be notified when tiles load. The WebGL renderer still sets frameState.animate true, but I think this too should be unnecessary (full page example works without it, side-by-side example shows it cannot yet be removed).
This commit is contained in:
@@ -4,8 +4,10 @@ goog.require('goog.events');
|
||||
goog.require('goog.events.EventType');
|
||||
goog.require('ol.FrameState');
|
||||
goog.require('ol.Object');
|
||||
goog.require('ol.Tile');
|
||||
goog.require('ol.TileCoord');
|
||||
goog.require('ol.TileRange');
|
||||
goog.require('ol.TileState');
|
||||
goog.require('ol.layer.Layer');
|
||||
goog.require('ol.layer.LayerProperty');
|
||||
goog.require('ol.layer.LayerState');
|
||||
@@ -147,6 +149,19 @@ ol.renderer.Layer.prototype.handleLayerVisibleChange = function() {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Handle changes in tile state.
|
||||
* @param {goog.events.Event} event Tile change event.
|
||||
* @protected
|
||||
*/
|
||||
ol.renderer.Layer.prototype.handleTileChange = function(event) {
|
||||
var tile = /** @type {ol.Tile} */ (event.target);
|
||||
if (tile.getState() === ol.TileState.LOADED) {
|
||||
this.getMap().requestRenderFrame();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {ol.FrameState} frameState Frame state.
|
||||
* @param {ol.layer.LayerState} layerState Layer state.
|
||||
|
||||
Reference in New Issue
Block a user