Change some members of QFontEngineFT::Glyph to short
Some color bitmap fonts will have a size greater than 127 pixels, areMetricsTooLarge() will return true(its advance exceed 127) for these fonts and we are unable to render these fonts since QFontEngineFT::loadGlyph() will simply do nothing if areMetricsTooLarge() return true. To support bitmap font whose size is between 128 and 255, we change x,y,advance of QFontEngineFT::Glyph to short variable to make areMetricsTooLarge() return false, in this way we will be able to render such color bitmap fonts. Change-Id: I9ab244b14884cdde91040a462f2fbca650b91289 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
This commit is contained in:
parent
c8e4d15004
commit
d2304a28ca
@ -849,11 +849,8 @@ static inline bool areMetricsTooLarge(const QFontEngineFT::GlyphInfo &info)
|
||||
{
|
||||
// false if exceeds QFontEngineFT::Glyph metrics
|
||||
return (short)(info.linearAdvance) != info.linearAdvance
|
||||
|| (signed char)(info.xOff) != info.xOff
|
||||
|| (uchar)(info.width) != info.width
|
||||
|| (uchar)(info.height) != info.height
|
||||
|| (signed char)(info.x) != info.x
|
||||
|| (signed char)(info.y) != info.y;
|
||||
|| (uchar)(info.height) != info.height;
|
||||
}
|
||||
|
||||
QFontEngineFT::Glyph *QFontEngineFT::loadGlyph(QGlyphSet *set, uint glyph,
|
||||
|
@ -140,9 +140,9 @@ public:
|
||||
short linearAdvance;
|
||||
unsigned char width;
|
||||
unsigned char height;
|
||||
signed char x;
|
||||
signed char y;
|
||||
signed char advance;
|
||||
short x;
|
||||
short y;
|
||||
short advance;
|
||||
signed char format;
|
||||
uchar *data;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user