Merge pull request #5230 from fredj/reuse_frameState
Reuse frame state arrays
This commit is contained in:
@@ -1286,7 +1286,7 @@ ol.Map.prototype.renderFrame_ = function(time) {
|
|||||||
/** @type {?olx.FrameState} */
|
/** @type {?olx.FrameState} */
|
||||||
var frameState = null;
|
var frameState = null;
|
||||||
if (size !== undefined && ol.size.hasArea(size) && view && view.isDef()) {
|
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 layerStatesArray = this.getLayerGroup().getLayerStatesArray();
|
||||||
var layerStates = {};
|
var layerStates = {};
|
||||||
for (i = 0, ii = layerStatesArray.length; i < ii; ++i) {
|
for (i = 0, ii = layerStatesArray.length; i < ii; ++i) {
|
||||||
@@ -1329,7 +1329,8 @@ ol.Map.prototype.renderFrame_ = function(time) {
|
|||||||
preRenderFunctions.length = n;
|
preRenderFunctions.length = n;
|
||||||
|
|
||||||
frameState.extent = ol.extent.getForViewAndSize(viewState.center,
|
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;
|
this.frameState_ = frameState;
|
||||||
|
|||||||
@@ -256,10 +256,17 @@ ol.View.prototype.getCenter = function() {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @param {Array.<number>=} opt_hints Destination array.
|
||||||
* @return {Array.<number>} Hint.
|
* @return {Array.<number>} Hint.
|
||||||
*/
|
*/
|
||||||
ol.View.prototype.getHints = function() {
|
ol.View.prototype.getHints = function(opt_hints) {
|
||||||
return this.hints_.slice();
|
if (opt_hints !== undefined) {
|
||||||
|
opt_hints[0] = this.hints_[0];
|
||||||
|
opt_hints[1] = this.hints_[1];
|
||||||
|
return opt_hints;
|
||||||
|
} else {
|
||||||
|
return this.hints_.slice();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user