diff --git a/src/ol/renderer/canvas/ImageLayer.js b/src/ol/renderer/canvas/ImageLayer.js index 6fb8c770e6..cb152f2e05 100644 --- a/src/ol/renderer/canvas/ImageLayer.js +++ b/src/ol/renderer/canvas/ImageLayer.js @@ -175,10 +175,8 @@ class CanvasImageLayerRenderer extends CanvasLayerRenderer { const resolution = viewState.resolution; const rotation = viewState.rotation; // desired dimensions of the canvas in pixels - const width = Math.round((getWidth(extent) / resolution) * imagePixelRatio); - const height = Math.round( - (getHeight(extent) / resolution) * imagePixelRatio - ); + const width = Math.round((getWidth(extent) / resolution) * pixelRatio); + const height = Math.round((getHeight(extent) / resolution) * pixelRatio); // set forward and inverse pixel transforms composeTransform( diff --git a/src/ol/renderer/canvas/TileLayer.js b/src/ol/renderer/canvas/TileLayer.js index 1ee94a26f3..5d0695aaaa 100644 --- a/src/ol/renderer/canvas/TileLayer.js +++ b/src/ol/renderer/canvas/TileLayer.js @@ -268,10 +268,8 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer { const resolution = frameState.viewState.resolution; const tilePixelRatio = tileSource.getTilePixelRatio(pixelRatio); // desired dimensions of the canvas in pixels - const width = Math.round((getWidth(extent) / resolution) * tilePixelRatio); - const height = Math.round( - (getHeight(extent) / resolution) * tilePixelRatio - ); + const width = Math.round((getWidth(extent) / resolution) * pixelRatio); + const height = Math.round((getHeight(extent) / resolution) * pixelRatio); const layerExtent = layerState.extent && fromUserExtent(layerState.extent, projection); @@ -369,15 +367,16 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer { } } - const canvasScale = tileResolution / viewResolution; + const canvasScale = + ((tileResolution / viewResolution) * pixelRatio) / tilePixelRatio; // set forward and inverse pixel transforms composeTransform( this.pixelTransform, frameState.size[0] / 2, frameState.size[1] / 2, - 1 / tilePixelRatio, - 1 / tilePixelRatio, + 1 / pixelRatio, + 1 / pixelRatio, rotation, -width / 2, -height / 2 diff --git a/test/rendering/cases/postrender-immediate/expected.png b/test/rendering/cases/postrender-immediate/expected.png index a260603a5e..fd0a748da5 100644 Binary files a/test/rendering/cases/postrender-immediate/expected.png and b/test/rendering/cases/postrender-immediate/expected.png differ