Fix rendercomplete for WebGLPoints layer and subclasses

This commit is contained in:
Andreas Hocevar
2022-02-01 14:23:57 +01:00
parent 10b97d3993
commit 7c3c1ac354
5 changed files with 89 additions and 4 deletions

View File

@@ -23,6 +23,7 @@ import TileLayerRenderer from '../../../../src/ol/renderer/canvas/TileLayer.js';
import VectorLayer from '../../../../src/ol/layer/Vector.js';
import VectorSource from '../../../../src/ol/source/Vector.js';
import View from '../../../../src/ol/View.js';
import WebGLPointsLayer from '../../../../src/ol/layer/WebGLPoints.js';
import XYZ from '../../../../src/ol/source/XYZ.js';
import {LineString, Point, Polygon} from '../../../../src/ol/geom.js';
import {TRUE} from '../../../../src/ol/functions.js';
@@ -449,6 +450,17 @@ describe('ol/Map', function () {
},
}),
}),
new WebGLPointsLayer({
source: new VectorSource({
features: [new Feature(new Point([0, 0]))],
}),
style: {
symbol: {
color: 'red',
symbolType: 'circle',
},
},
}),
],
});
});
@@ -460,13 +472,15 @@ describe('ol/Map', function () {
});
it('triggers when all tiles and sources are loaded and faded in', function (done) {
const layers = map.getLayers().getArray();
expect(layers[6].getRenderer().ready).to.be(false);
map.once('rendercomplete', function () {
const layers = map.getLayers().getArray();
expect(map.tileQueue_.getTilesLoading()).to.be(0);
expect(layers[1].getSource().image_.getState()).to.be(
ImageState.LOADED
);
expect(layers[2].getSource().getFeatures().length).to.be(1);
expect(layers[6].getRenderer().ready).to.be(true);
done();
});
map.setView(