Refactor VectorTile renderer and add lower resolution clipping

This commit is contained in:
Andreas Hocevar
2016-11-07 09:37:09 +01:00
parent 0d65d1d813
commit ee7b894350
8 changed files with 228 additions and 259 deletions

View File

@@ -32,15 +32,18 @@ describe('ol.renderer.canvas.TileLayer', function() {
renderer.renderedTiles = [];
var frameState = {
viewState: {
center: [2, 3],
center: [10, 5],
projection: ol.proj.get('EPSG:3857'),
resolution: 1,
rotation: Math.PI
},
size: [10, 10],
extent: [0, 0, 20, 10],
size: [20, 10],
pixelRatio: 2,
coordinateToPixelTransform: ol.transform.create(),
pixelToCoordinateTransform: ol.transform.create()
pixelToCoordinateTransform: ol.transform.create(),
usedTiles: {},
wantedTiles: {}
};
renderer.getImageTransform = function() {
return ol.transform.create();
@@ -62,8 +65,9 @@ describe('ol.renderer.canvas.TileLayer', function() {
return img;
}
}];
renderer.prepareFrame(frameState, layerState);
renderer.composeFrame(frameState, layerState, context);
expect(context.drawImage.firstCall.args[0].width).to.be(112);
expect(context.drawImage.firstCall.args[0].width).to.be(17);
});
});

View File

@@ -89,7 +89,7 @@ describe('ol.renderer.canvas.VectorTileLayer', function() {
it('does not render images for pure vector rendering', function() {
layer.renderMode_ = 'vector';
var spy = sinon.spy(ol.renderer.canvas.VectorTileLayer.prototype,
'renderTileImages');
'renderTileImage_');
map.renderSync();
expect(spy.callCount).to.be(0);
spy.restore();
@@ -98,7 +98,7 @@ describe('ol.renderer.canvas.VectorTileLayer', function() {
it('does not render replays for pure image rendering', function() {
layer.renderMode_ = 'image';
var spy = sinon.spy(ol.renderer.canvas.VectorTileLayer.prototype,
'renderTileReplays_');
'getReplayTransform_');
map.renderSync();
expect(spy.callCount).to.be(0);
spy.restore();
@@ -106,9 +106,9 @@ describe('ol.renderer.canvas.VectorTileLayer', function() {
it('renders both replays and images for hybrid rendering', function() {
var spy1 = sinon.spy(ol.renderer.canvas.VectorTileLayer.prototype,
'renderTileReplays_');
'getReplayTransform_');
var spy2 = sinon.spy(ol.renderer.canvas.VectorTileLayer.prototype,
'renderTileImages');
'renderTileImage_');
map.renderSync();
expect(spy1.callCount).to.be(1);
expect(spy2.callCount).to.be(1);