From 928906bd1719c7efb837ae50ccff07fd313cbff9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Sat, 6 Apr 2013 14:25:05 +0200 Subject: [PATCH] Do not always limit num of tile loads per frame --- src/ol/map.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/ol/map.js b/src/ol/map.js index b2f1a29b9f..c20ef5632a 100644 --- a/src/ol/map.js +++ b/src/ol/map.js @@ -43,6 +43,7 @@ goog.require('ol.Tile'); goog.require('ol.TileQueue'); goog.require('ol.View'); goog.require('ol.View2D'); +goog.require('ol.ViewHint'); goog.require('ol.control.defaults'); goog.require('ol.interaction.defaults'); goog.require('ol.layer.Layer'); @@ -588,8 +589,19 @@ ol.Map.prototype.handleMapBrowserEvent = function(mapBrowserEvent) { * @protected */ ol.Map.prototype.handlePostRender = function() { + + // Limit the number of tile loads if animating or interacting. + var limit = (1 << 30) - 1; // a large enough integer + var frameState = this.frameState_; + if (!goog.isNull(frameState)) { + var hints = frameState.viewHints; + if (hints[ol.ViewHint.ANIMATING] || hints[ol.ViewHint.INTERACTING]) { + limit = ol.MAXIMUM_NEW_TILE_LOADS_PER_FRAME; + } + } + this.tileQueue_.reprioritize(); // FIXME only call if needed - this.tileQueue_.loadMoreTiles(ol.MAXIMUM_NEW_TILE_LOADS_PER_FRAME); + this.tileQueue_.loadMoreTiles(limit); var postRenderFunctions = this.postRenderFunctions_; var i;