diff --git a/test/rendering/cases/postrender-immediate/expected.png b/test/rendering/cases/postrender-immediate/expected.png new file mode 100644 index 0000000000..a260603a5e Binary files /dev/null and b/test/rendering/cases/postrender-immediate/expected.png differ diff --git a/test/rendering/cases/postrender-immediate/main.js b/test/rendering/cases/postrender-immediate/main.js new file mode 100644 index 0000000000..430fc5271b --- /dev/null +++ b/test/rendering/cases/postrender-immediate/main.js @@ -0,0 +1,45 @@ +import {Circle, Stroke, Style} from '../../../../src/ol/style.js'; +import {Map, View} from '../../../../src/ol/index.js'; +import {Point} from '../../../../src/ol/geom.js'; +import {Tile as TileLayer} from '../../../../src/ol/layer.js'; +import {XYZ} from '../../../../src/ol/source.js'; +import {getVectorContext} from '../../../../src/ol/render.js'; +import {useGeographic} from '../../../../src/ol/proj.js'; + +useGeographic(); + +const center = [8.6, 50.1]; +const point = new Point(center); +const style = new Style({ + image: new Circle({ + radius: 40, + stroke: new Stroke({ + width: 5, + color: 'red', + }), + }), +}); + +const tileLayer = new TileLayer({ + source: new XYZ({ + url: '/data/tiles/satellite/{z}/{x}/{y}.jpg', + transition: 0, + }), +}); + +new Map({ + layers: [tileLayer], + target: 'map', + view: new View({ + center: center, + zoom: 3, + }), + pixelRatio: 2, +}); +tileLayer.on('postrender', function (evt) { + const vectorContext = getVectorContext(evt); + vectorContext.setStyle(style); + vectorContext.drawGeometry(point); +}); + +render();