diff --git a/examples/layer-swipe.js b/examples/layer-swipe.js index c39189391c..c9e4d0bd65 100644 --- a/examples/layer-swipe.js +++ b/examples/layer-swipe.js @@ -3,6 +3,7 @@ import View from '../src/ol/View.js'; import TileLayer from '../src/ol/layer/Tile.js'; import OSM from '../src/ol/source/OSM.js'; import XYZ from '../src/ol/source/XYZ.js'; +import {getRenderPixel} from '../src/ol/render.js'; const osm = new TileLayer({ source: new OSM() @@ -34,10 +35,18 @@ const swipe = document.getElementById('swipe'); aerial.on('prerender', function(event) { const ctx = event.context; const width = ctx.canvas.width * (swipe.value / 100); + const tl = getRenderPixel(event, [width, 0]); + const tr = getRenderPixel(event, [mapSize[0], 0]); + const bl = getRenderPixel(event, [width, mapSize[1]]); + const br = getRenderPixel(event, mapSize); ctx.save(); ctx.beginPath(); - ctx.rect(width, 0, ctx.canvas.width - width, ctx.canvas.height); + ctx.moveTo(tl[0], tl[1]); + ctx.lineTo(bl[0], bl[1]); + ctx.lineTo(br[0], br[1]); + ctx.lineTo(tr[0], tr[1]); + ctx.closePath(); ctx.clip(); });