Factor out updateTileUsage
This commit is contained in:
@@ -89,21 +89,6 @@ ol.renderer.dom.TileLayer.prototype.renderFrame =
|
||||
var tileRange = tileGrid.getTileRangeForExtentAndResolution(
|
||||
frameState.extent, tileResolution);
|
||||
|
||||
// FIXME should also consider interim tiles
|
||||
var tileUsage = frameState.tileUsage;
|
||||
var tileSourceKey = goog.getUid(tileSource).toString();
|
||||
var zKey = z.toString();
|
||||
if (tileSourceKey in tileUsage) {
|
||||
if (z in tileUsage[tileSourceKey]) {
|
||||
tileUsage[tileSourceKey][zKey].extend(tileRange);
|
||||
} else {
|
||||
tileUsage[tileSourceKey][zKey] = tileRange;
|
||||
}
|
||||
} else {
|
||||
tileUsage[tileSourceKey] = {};
|
||||
tileUsage[tileSourceKey][zKey] = tileRange;
|
||||
}
|
||||
|
||||
/** @type {Object.<number, Object.<string, ol.Tile>>} */
|
||||
var tilesToDrawByZ = {};
|
||||
tilesToDrawByZ[z] = {};
|
||||
@@ -251,6 +236,8 @@ ol.renderer.dom.TileLayer.prototype.renderFrame =
|
||||
frameState.animate = true;
|
||||
}
|
||||
|
||||
this.updateTileUsage(frameState.tileUsage, tileSource, z, tileRange);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ goog.provide('ol.renderer.Layer');
|
||||
goog.require('goog.events');
|
||||
goog.require('goog.events.EventType');
|
||||
goog.require('ol.Object');
|
||||
goog.require('ol.TileRange');
|
||||
goog.require('ol.layer.Layer');
|
||||
goog.require('ol.layer.LayerProperty');
|
||||
|
||||
@@ -125,3 +126,28 @@ ol.renderer.Layer.prototype.handleLayerSaturationChange = goog.nullFunction;
|
||||
* @protected
|
||||
*/
|
||||
ol.renderer.Layer.prototype.handleLayerVisibleChange = goog.nullFunction;
|
||||
|
||||
|
||||
/**
|
||||
* @protected
|
||||
* @param {Object.<string, Object.<string, ol.TileRange>>} tileUsage Tile usage.
|
||||
* @param {ol.source.Source} source Source.
|
||||
* @param {number} z Z.
|
||||
* @param {ol.TileRange} tileRange Tile range.
|
||||
*/
|
||||
ol.renderer.Layer.prototype.updateTileUsage =
|
||||
function(tileUsage, source, z, tileRange) {
|
||||
// FIXME should we use tilesToDrawByZ instead?
|
||||
var sourceKey = goog.getUid(source).toString();
|
||||
var zKey = z.toString();
|
||||
if (sourceKey in tileUsage) {
|
||||
if (z in tileUsage[sourceKey]) {
|
||||
tileUsage[sourceKey][zKey].extend(tileRange);
|
||||
} else {
|
||||
tileUsage[sourceKey][zKey] = tileRange;
|
||||
}
|
||||
} else {
|
||||
tileUsage[sourceKey] = {};
|
||||
tileUsage[sourceKey][zKey] = tileRange;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -276,23 +276,7 @@ ol.renderer.webgl.TileLayer.prototype.renderFrame =
|
||||
var tileRange = tileGrid.getTileRangeForExtentAndResolution(
|
||||
frameState.extent, tileResolution);
|
||||
|
||||
// FIXME should also consider interim tiles
|
||||
var tileUsage = frameState.tileUsage;
|
||||
var tileSourceKey = goog.getUid(tileSource).toString();
|
||||
var zKey = z.toString();
|
||||
if (tileSourceKey in tileUsage) {
|
||||
if (z in tileUsage[tileSourceKey]) {
|
||||
tileUsage[tileSourceKey][zKey].extend(tileRange);
|
||||
} else {
|
||||
tileUsage[tileSourceKey][zKey] = tileRange;
|
||||
}
|
||||
} else {
|
||||
tileUsage[tileSourceKey] = {};
|
||||
tileUsage[tileSourceKey][zKey] = tileRange;
|
||||
}
|
||||
|
||||
var framebufferExtent;
|
||||
|
||||
if (!goog.isNull(this.renderedTileRange_) &&
|
||||
this.renderedTileRange_.equals(tileRange)) {
|
||||
framebufferExtent = this.renderedFramebufferExtent_;
|
||||
@@ -475,6 +459,8 @@ ol.renderer.webgl.TileLayer.prototype.renderFrame =
|
||||
|
||||
}
|
||||
|
||||
this.updateTileUsage(frameState.tileUsage, tileSource, z, tileRange);
|
||||
|
||||
goog.vec.Mat4.makeIdentity(this.matrix_);
|
||||
goog.vec.Mat4.translate(this.matrix_,
|
||||
(view2DState.center.x - framebufferExtent.minX) /
|
||||
|
||||
Reference in New Issue
Block a user