summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Thompson <daniel@redfelineninja.org.uk>2021-06-04 09:46:25 (GMT)
committerDaniel Thompson <daniel@redfelineninja.org.uk>2021-06-04 09:46:25 (GMT)
commit4ad827390227249ba69f1ae60671b20531fdd9e1 (patch)
tree519deed3bf06233335b55f3e0185e9d1df164b38
parent1115ac2fff0057df93ea8a6ccdb93102cec0c465 (diff)
draw565: Fix bounding box calculations
wasp-os uses an drawing optimization technique to automatically place a single pixel line on the right of glyphs when rendering them. This results in a change to the bounding box for a rendered string (by adding a single pixel on the right of the final character). Fix the bounding box calculations accordingly. Among other things this eliminates graphical artifacts when rendering labels in 2048. Fixes: #203 Fixes: 58b5c0378ec3 ("draw565: Optimize the string drawing") Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
-rw-r--r--wasp/boards/simulator/test_unit.py2
-rw-r--r--wasp/draw565.py2
2 files changed, 2 insertions, 2 deletions
diff --git a/wasp/boards/simulator/test_unit.py b/wasp/boards/simulator/test_unit.py
index 940edba..f292c9a 100644
--- a/wasp/boards/simulator/test_unit.py
+++ b/wasp/boards/simulator/test_unit.py
@@ -53,7 +53,7 @@ def test_font_width(draw):
for f in (fonts.sans24, fonts.sans28, fonts.sans36):
draw.set_font(f)
- assert 3 == draw.bounding_box('0000')[0] % 4
+ assert 0 == draw.bounding_box('0000')[0] % 4
if f.max_ch() >= 90:
assert draw.bounding_box('IIII')[0] < draw.bounding_box('WWWW')[0]
diff --git a/wasp/draw565.py b/wasp/draw565.py
index f831b04..50f5547 100644
--- a/wasp/draw565.py
+++ b/wasp/draw565.py
@@ -75,7 +75,7 @@ def _bounding_box(s, font):
return (0, font.height())
get_ch = font.get_ch
- w = len(s) - 1
+ w = len(s)
for ch in s:
(_, h, wc) = get_ch(ch)
w += wc