From 02e23e3cd0e8ff22320843c5ac369844f3b7c0e0 Mon Sep 17 00:00:00 2001 From: Andreas Hocevar Date: Mon, 9 Oct 2017 18:45:55 +0200 Subject: [PATCH] Take pixel ratio into account for text stroke --- src/ol/render/canvas/textreplay.js | 2 +- .../ol/style/expected/text-canvas-hidpi.png | Bin 0 -> 8748 bytes test/rendering/ol/style/text.test.js | 10 ++++++++-- 3 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 test/rendering/ol/style/expected/text-canvas-hidpi.png diff --git a/src/ol/render/canvas/textreplay.js b/src/ol/render/canvas/textreplay.js index d39abc05bf..2ff5fd3792 100644 --- a/src/ol/render/canvas/textreplay.js +++ b/src/ol/render/canvas/textreplay.js @@ -326,7 +326,7 @@ ol.render.canvas.TextReplay.prototype.getImage_ = function(text, fill, stroke) { context.font = textState.font; if (stroke) { context.strokeStyle = strokeState.strokeStyle; - context.lineWidth = strokeState.lineWidth; + context.lineWidth = strokeWidth * pixelRatio; context.lineCap = strokeState.lineCap; context.lineJoin = strokeState.lineJoin; context.miterLimit = strokeState.miterLimit; diff --git a/test/rendering/ol/style/expected/text-canvas-hidpi.png b/test/rendering/ol/style/expected/text-canvas-hidpi.png new file mode 100644 index 0000000000000000000000000000000000000000..4c8a444edb405a4b727f47f4c5d74a5b4cd367b7 GIT binary patch literal 8748 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