diff --git a/src/ol/framestate.js b/src/ol/framestate.js index 5ab8fdb9a7..e7ebadae9c 100644 --- a/src/ol/framestate.js +++ b/src/ol/framestate.js @@ -24,6 +24,7 @@ goog.require('ol.layer.LayerState'); * coordinateToPixelMatrix: goog.vec.Mat4.Number, * extent: (null|ol.Extent), * focus: ol.Coordinate, + * index: number, * layersArray: Array., * layerStates: Object., * logos: Object., diff --git a/src/ol/map.js b/src/ol/map.js index 70cb4928a4..c551e7317b 100644 --- a/src/ol/map.js +++ b/src/ol/map.js @@ -168,6 +168,12 @@ ol.Map = function(options) { */ this.pixelToCoordinateMatrix_ = goog.vec.Mat4.createNumber(); + /** + * @private + * @type {number} + */ + this.frameIndex_ = 0; + /** * @private * @type {?ol.FrameState} @@ -804,6 +810,7 @@ ol.Map.prototype.renderFrame_ = function(time) { coordinateToPixelMatrix: this.coordinateToPixelMatrix_, extent: null, focus: goog.isNull(this.focus_) ? view2DState.center : this.focus_, + index: this.frameIndex_++, layersArray: layersArray, layerStates: layerStates, logos: {}, diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index 32579a1bcd..25acd5e3a7 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -365,7 +365,7 @@ ol.renderer.webgl.Map.prototype.expireCache_ = function(map, frameState) { textureCacheEntry = /** @type {?ol.renderer.webgl.TextureCacheEntry} */ (this.textureCache_.peekLast()); if (goog.isNull(textureCacheEntry)) { - if (+this.textureCache_.peekLastKey() == frameState.time) { + if (+this.textureCache_.peekLastKey() == frameState.index) { break; } else { --this.textureCacheFrameMarkerCount_; @@ -521,7 +521,7 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) { this.focus_ = frameState.focus; - this.textureCache_.set(frameState.time.toString(), null); + this.textureCache_.set(frameState.index.toString(), null); ++this.textureCacheFrameMarkerCount_; goog.array.forEach(frameState.layersArray, function(layer) {