Skip unnecessary render functions
This commit is contained in:
@@ -76,8 +76,13 @@ ol.renderer.canvas.VectorTileLayer.prototype.composeFrame = function(
|
|||||||
frameState, layerState, context) {
|
frameState, layerState, context) {
|
||||||
var transform = this.getTransform(frameState, 0);
|
var transform = this.getTransform(frameState, 0);
|
||||||
this.dispatchPreComposeEvent(context, frameState, transform);
|
this.dispatchPreComposeEvent(context, frameState, transform);
|
||||||
this.renderTileImages(context, frameState, layerState);
|
var renderMode = this.getLayer().getRenderMode();
|
||||||
this.renderTileReplays_(context, frameState, layerState);
|
if (renderMode !== ol.layer.VectorTileRenderType.VECTOR) {
|
||||||
|
this.renderTileImages(context, frameState, layerState);
|
||||||
|
}
|
||||||
|
if (renderMode !== ol.layer.VectorTileRenderType.IMAGE) {
|
||||||
|
this.renderTileReplays_(context, frameState, layerState);
|
||||||
|
}
|
||||||
this.dispatchPostComposeEvent(context, frameState, transform);
|
this.dispatchPostComposeEvent(context, frameState, transform);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -93,9 +98,6 @@ ol.renderer.canvas.VectorTileLayer.prototype.renderTileReplays_ = function(
|
|||||||
|
|
||||||
var layer = this.getLayer();
|
var layer = this.getLayer();
|
||||||
var replays = ol.renderer.canvas.VECTOR_REPLAYS[layer.getRenderMode()];
|
var replays = ol.renderer.canvas.VECTOR_REPLAYS[layer.getRenderMode()];
|
||||||
if (!replays) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var pixelRatio = frameState.pixelRatio;
|
var pixelRatio = frameState.pixelRatio;
|
||||||
var skippedFeatureUids = layerState.managed ?
|
var skippedFeatureUids = layerState.managed ?
|
||||||
frameState.skippedFeatureUids : {};
|
frameState.skippedFeatureUids : {};
|
||||||
|
|||||||
@@ -66,10 +66,25 @@ describe('ol.renderer.canvas.VectorTileLayer', function() {
|
|||||||
it('uses lower resolution for pure vector rendering', function() {
|
it('uses lower resolution for pure vector rendering', function() {
|
||||||
layer.renderMode_ = 'vector';
|
layer.renderMode_ = 'vector';
|
||||||
var renderer = new ol.renderer.canvas.VectorTileLayer(layer);
|
var renderer = new ol.renderer.canvas.VectorTileLayer(layer);
|
||||||
expect(renderer).to.be.a(ol.renderer.canvas.VectorTileLayer);
|
|
||||||
expect(renderer.zDirection).to.be(1);
|
expect(renderer.zDirection).to.be(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('does not render images for pure vector rendering', function() {
|
||||||
|
layer.renderMode_ = 'vector';
|
||||||
|
var renderer = new ol.renderer.canvas.VectorTileLayer(layer);
|
||||||
|
var spy = sinon.spy(renderer, 'renderTileImages');
|
||||||
|
map.renderSync();
|
||||||
|
expect(spy.callCount).to.be(0);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('does not render replays for pure image rendering', function() {
|
||||||
|
layer.renderMode_ = 'image';
|
||||||
|
var renderer = new ol.renderer.canvas.VectorTileLayer(layer);
|
||||||
|
var spy = sinon.spy(renderer, 'renderTileReplays_');
|
||||||
|
map.renderSync();
|
||||||
|
expect(spy.callCount).to.be(0);
|
||||||
|
});
|
||||||
|
|
||||||
it('gives precedence to feature styles over layer styles', function() {
|
it('gives precedence to feature styles over layer styles', function() {
|
||||||
var spy = sinon.spy(map.getRenderer().getLayerRenderer(layer),
|
var spy = sinon.spy(map.getRenderer().getLayerRenderer(layer),
|
||||||
'renderFeature');
|
'renderFeature');
|
||||||
|
|||||||
Reference in New Issue
Block a user