Merge pull request #5230 from fredj/reuse_frameState

Reuse frame state arrays
This commit is contained in:
Frédéric Junod
2016-04-14 14:57:30 +02:00
2 changed files with 12 additions and 4 deletions

View File

@@ -1286,7 +1286,7 @@ ol.Map.prototype.renderFrame_ = function(time) {
/** @type {?olx.FrameState} */
var frameState = null;
if (size !== undefined && ol.size.hasArea(size) && view && view.isDef()) {
var viewHints = view.getHints();
var viewHints = view.getHints(this.frameState_ ? this.frameState_.viewHints : undefined);
var layerStatesArray = this.getLayerGroup().getLayerStatesArray();
var layerStates = {};
for (i = 0, ii = layerStatesArray.length; i < ii; ++i) {
@@ -1329,7 +1329,8 @@ ol.Map.prototype.renderFrame_ = function(time) {
preRenderFunctions.length = n;
frameState.extent = ol.extent.getForViewAndSize(viewState.center,
viewState.resolution, viewState.rotation, frameState.size);
viewState.resolution, viewState.rotation, frameState.size,
this.frameState_ ? this.frameState_.extent : undefined);
}
this.frameState_ = frameState;

View File

@@ -256,10 +256,17 @@ ol.View.prototype.getCenter = function() {
/**
* @param {Array.<number>=} opt_hints Destination array.
* @return {Array.<number>} Hint.
*/
ol.View.prototype.getHints = function() {
return this.hints_.slice();
ol.View.prototype.getHints = function(opt_hints) {
if (opt_hints !== undefined) {
opt_hints[0] = this.hints_[0];
opt_hints[1] = this.hints_[1];
return opt_hints;
} else {
return this.hints_.slice();
}
};