Add a renderBuffer option to ol.layer.Vector

This commit is contained in:
Éric Lemoine
2014-10-21 09:00:44 +02:00
parent ddc51ee267
commit 8e8fc9977c
5 changed files with 32 additions and 18 deletions

View File

@@ -37,6 +37,13 @@ ol.layer.Vector = function(opt_options) {
delete baseOptions.style;
goog.base(this, /** @type {olx.layer.LayerOptions} */ (baseOptions));
/**
* @type {number}
* @private
*/
this.renderBuffer_ = goog.isDef(options.renderBuffer) ?
options.renderBuffer : 100;
/**
* User provided style.
* @type {ol.style.Style|Array.<ol.style.Style>|ol.style.StyleFunction}
@@ -57,6 +64,14 @@ ol.layer.Vector = function(opt_options) {
goog.inherits(ol.layer.Vector, ol.layer.Layer);
/**
* @return {number|undefined} Render buffer.
*/
ol.layer.Vector.prototype.getRenderBuffer = function() {
return this.renderBuffer_;
};
/**
* @return {function(ol.Feature, ol.Feature): number|null|undefined} Render
* order.

View File

@@ -194,12 +194,8 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame =
}
var extent = this.renderedExtent_;
var xBuffer = ol.extent.getWidth(frameStateExtent) / 4;
var yBuffer = ol.extent.getHeight(frameStateExtent) / 4;
extent[0] = frameStateExtent[0] - xBuffer;
extent[1] = frameStateExtent[1] - yBuffer;
extent[2] = frameStateExtent[2] + xBuffer;
extent[3] = frameStateExtent[3] + yBuffer;
var renderBuffer = vectorLayer.getRenderBuffer();
ol.extent.buffer(frameStateExtent, renderBuffer * resolution, extent);
// FIXME dispose of old replayGroup in post render
goog.dispose(this.replayGroup_);

View File

@@ -234,12 +234,8 @@ ol.renderer.dom.VectorLayer.prototype.prepareFrame =
}
var extent = this.renderedExtent_;
var xBuffer = ol.extent.getWidth(frameStateExtent) / 4;
var yBuffer = ol.extent.getHeight(frameStateExtent) / 4;
extent[0] = frameStateExtent[0] - xBuffer;
extent[1] = frameStateExtent[1] - yBuffer;
extent[2] = frameStateExtent[2] + xBuffer;
extent[3] = frameStateExtent[3] + yBuffer;
var renderBuffer = vectorLayer.getRenderBuffer();
ol.extent.buffer(frameStateExtent, renderBuffer * resolution, extent);
// FIXME dispose of old replayGroup in post render
goog.dispose(this.replayGroup_);

View File

@@ -153,12 +153,8 @@ ol.renderer.webgl.VectorLayer.prototype.prepareFrame =
}
var extent = this.renderedExtent_;
var xBuffer = ol.extent.getWidth(frameStateExtent) / 4;
var yBuffer = ol.extent.getHeight(frameStateExtent) / 4;
extent[0] = frameStateExtent[0] - xBuffer;
extent[1] = frameStateExtent[1] - yBuffer;
extent[2] = frameStateExtent[2] + xBuffer;
extent[3] = frameStateExtent[3] + yBuffer;
var renderBuffer = vectorLayer.getRenderBuffer();
ol.extent.buffer(frameStateExtent, renderBuffer * resolution, extent);
if (!goog.isNull(this.replayGroup_)) {
frameState.postRenderFunctions.push(