From f82c7de5dae17ba7632a6efc96334a78da1c3adf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Wed, 8 Nov 2017 14:31:50 +0100 Subject: [PATCH] refactor one_pixel logic --- src/c3nav/mapdata/render/engines/opengl.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/c3nav/mapdata/render/engines/opengl.py b/src/c3nav/mapdata/render/engines/opengl.py index 5141d862..2f3b50da 100644 --- a/src/c3nav/mapdata/render/engines/opengl.py +++ b/src/c3nav/mapdata/render/engines/opengl.py @@ -173,13 +173,17 @@ class OpenGLEngine(RenderEngine): ((geom.exterior, *geom.interiors) if isinstance(geom, Polygon) else (geom, )) for geom in getattr(geometry, 'geoms', (geometry, )) ))) - one_pixel = 1 / self.scale / 2 / self.samples + width = max(stroke.width, (stroke.min_px or 0) / self.scale) / 2 + + # if width would be <1px in the upsampled rendering, emulate it thorugh opacity on a 1px width + one_pixel = 1 / self.scale / 2 / self.samples if width < one_pixel: alpha = width/one_pixel width = one_pixel else: alpha = 1 + self.vertices.append(self._create_geometry( unary_union(lines).buffer(width, cap_style=CAP_STYLE.flat, join_style=JOIN_STYLE.mitre), self.color_to_rgb(stroke.color, alpha=alpha)