Port DOM renderer to request render frame architecture
This commit is contained in:
@@ -86,16 +86,6 @@ ol.renderer.dom.TileLayer.prototype.removeExtraTiles_ =
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {goog.events.Event} event Tile change event.
|
||||
* @private
|
||||
*/
|
||||
ol.renderer.dom.TileLayer.prototype.handleTileChange_ = function(event) {
|
||||
goog.asserts.assert(event.target.getState() == ol.TileState.LOADED);
|
||||
this.getMap().render();
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
@@ -125,6 +115,7 @@ ol.renderer.dom.TileLayer.prototype.renderFrame = function(time) {
|
||||
var tileRange =
|
||||
tileGrid.getTileRangeForExtentAndResolution(mapExtent, mapResolution);
|
||||
|
||||
var allTilesLoaded = true;
|
||||
|
||||
// first pass through the tile range to determine all the tiles needed
|
||||
tileRange.forEachTileCoord(z, function(tileCoord) {
|
||||
@@ -136,17 +127,15 @@ ol.renderer.dom.TileLayer.prototype.renderFrame = function(time) {
|
||||
|
||||
var key = tile.tileCoord.toString();
|
||||
var state = tile.getState();
|
||||
if (state == ol.TileState.LOADED) {
|
||||
if (state == ol.TileState.IDLE) {
|
||||
tile.load();
|
||||
} else if (state == ol.TileState.LOADED) {
|
||||
tilesToDrawByZ[z][key] = tile;
|
||||
return;
|
||||
} else {
|
||||
if (state != ol.TileState.LOADING) {
|
||||
goog.events.listen(tile, goog.events.EventType.CHANGE,
|
||||
this.handleTileChange_, false, this);
|
||||
tile.load();
|
||||
}
|
||||
}
|
||||
|
||||
allTilesLoaded = false;
|
||||
|
||||
/**
|
||||
* Look for already loaded tiles at alternate z that can serve as
|
||||
* placeholders until tiles at the current z have loaded.
|
||||
@@ -233,4 +222,6 @@ ol.renderer.dom.TileLayer.prototype.renderFrame = function(time) {
|
||||
this.renderedMapResolution_ = mapResolution;
|
||||
|
||||
this.removeExtraTiles_(tilesToDrawByZ);
|
||||
|
||||
return !allTilesLoaded;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user