summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qfontengine_ft_p.h
diff options
context:
space:
mode:
authorJiang Jiang <jiang.jiang@nokia.com>2012-05-16 18:14:45 +0200
committerQt by Nokia <qt-info@nokia.com>2012-05-18 10:39:49 +0200
commita56ee60791538e5442b3d97b75270b25dc4986db (patch)
tree0f16f04138787d0f151e92ffa223bc53d0829764 /src/gui/text/qfontengine_ft_p.h
parenta605d25ae249fc416f321ec1264b7aa33e15c46f (diff)
Fix FreeType glyph caching for high resolution
For high resolution or extremely large font sizes, the advance cached here is likely to overflow, since FreeType returns 26.6 fixed point value and we only take signed char here for advance. In those cases we should skip caching because there won't be that many big glyphs after all. Also move the metrics caching block a bit down to take glyph embolden and oblique into account. As a result we also don't need to increase the linearAdvance size because any linearAdvance less than 128 should fit in the old 10.6 fixed format. Change-Id: Ic4920ada49954ce1e0a8673c9f33f30e385e3046 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
Diffstat (limited to 'src/gui/text/qfontengine_ft_p.h')
-rw-r--r--src/gui/text/qfontengine_ft_p.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gui/text/qfontengine_ft_p.h b/src/gui/text/qfontengine_ft_p.h
index e665ce8a09..5abcadc2dc 100644
--- a/src/gui/text/qfontengine_ft_p.h
+++ b/src/gui/text/qfontengine_ft_p.h
@@ -141,7 +141,7 @@ public:
/* we don't cache glyphs that are too large anyway, so we can make this struct rather small */
struct Glyph {
~Glyph();
- int linearAdvance : 22; // 16.6
+ short linearAdvance;
unsigned char width;
unsigned char height;
signed char x;