From 8fef7b9edd7674257d61bbb54c0b2aca56ee64fa Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 18 Apr 2013 14:15:06 +0200 Subject: [PATCH 1/2] Add index to frame state --- src/ol/framestate.js | 1 + src/ol/map.js | 7 +++++++ 2 files changed, 8 insertions(+) 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: {}, From 75bc61c0e05d6b2fe2cf9504c97e3c96a0849cea Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 18 Apr 2013 14:15:48 +0200 Subject: [PATCH 2/2] Use index instead of time as frame marker --- src/ol/renderer/webgl/webglmaprenderer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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) {