From 82446ebc919f55d62bef63aff4f325c5a7f93fea Mon Sep 17 00:00:00 2001 From: Stefan Seyfried Date: Sun, 4 Feb 2018 17:54:21 +0100 Subject: [PATCH] fontrender: fix width calculation of bounding box some glyphs would still draw right of the allocated space, fix the width calculation to avoid this Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/24b02050c0feba4fa52a3d9cff54d9de9de21c89 Author: Stefan Seyfried Date: 2018-02-04 (Sun, 04 Feb 2018) ------------------ This commit was generated by Migit --- src/driver/fontrenderer.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/driver/fontrenderer.cpp b/src/driver/fontrenderer.cpp index 11d852edd..eab20e276 100644 --- a/src/driver/fontrenderer.cpp +++ b/src/driver/fontrenderer.cpp @@ -650,7 +650,8 @@ void Font::RenderString(int x, int y, const int width, const char *text, const f if (x + glyph->xadvance + spread_by > left + width) break; #endif - int ap=(x + glyph->left) * sizeof(fb_pixel_t) + stride * (y - glyph->top); + int xoff = x + glyph->left; + int ap = xoff * sizeof(fb_pixel_t) + stride * (y - glyph->top); uint8_t * d = ((uint8_t *)buff) + ap; uint8_t * s = glyph->buffer; int w = glyph->width; @@ -662,7 +663,7 @@ void Font::RenderString(int x, int y, const int width, const char *text, const f int ax; for (ax = 0; ax < w + spread_by; ax++) { /* width clip */ - if (x + ax > left + width) + if (xoff + ax >= left + width) break; if (stylemodifier != Font::Embolden) { /* do not paint the backgroundcolor (*s = 0) */