Port DOM renderer to request render frame architecture

This commit is contained in:
Tom Payne
2013-01-03 14:51:15 +01:00
parent b386c38111
commit 7a36793776
2 changed files with 18 additions and 40 deletions

View File

@@ -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;
};