From f0d56fe6e77b4a84e15b364c627224a3fb9d84d1 Mon Sep 17 00:00:00 2001 From: seife Date: Sun, 6 Mar 2011 18:08:23 +0000 Subject: [PATCH] fontrenderer: bring RenderString() and getRenderWidth() in line both functions had slightly different ideas on how wide a string would render, leading to occational off-by-ones and eventually stripped characters git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@1264 e54a6e83-5905-42d5-8d5c-058d10e6a962 --- src/driver/fontrenderer.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/driver/fontrenderer.cpp b/src/driver/fontrenderer.cpp index 18d356ebf..4cd80190c 100644 --- a/src/driver/fontrenderer.cpp +++ b/src/driver/fontrenderer.cpp @@ -500,18 +500,18 @@ void Font::RenderString(int x, int y, const int width, const char *text, const u continue; } + //kerning + if (use_kerning) + { + FT_Get_Kerning(face, lastindex, index, 0, &kerning); + //x+=(kerning.x+32)>>6; // kerning! + x += (kerning.x) >> 6; // kerning! + } + // width clip if (x + glyph->xadvance + spread_by > left + width) break; - //kerning - if(use_kerning) - { - FT_Get_Kerning(face,lastindex,index,0,&kerning); - //x+=(kerning.x+32)>>6; // kerning! - x+=(kerning.x)>>6; // kerning! - } - #ifndef USE_NEVIS_GXA int stride = frameBuffer->getStride(); int ap=(x + glyph->left) * sizeof(fb_pixel_t) + stride * (y - glyph->top); @@ -638,10 +638,10 @@ int Font::getRenderWidth(const char *text, const bool utf8_encoded) continue; } //kerning - if(use_kerning) + if (use_kerning) { - FT_Get_Kerning(face,lastindex,index,0,&kerning); - x+=(kerning.x+32)>>6; // kerning! + FT_Get_Kerning(face, lastindex, index, 0, &kerning); + x += (kerning.x) >> 6; // kerning! } x+=glyph->xadvance+1;