Codechange: Scale sprite font height once on init instead of every call to GetHeight().

Scaling is not expensive, but it does not change either, and this avoids the need for a virtual method call. This cascades back to all GetCharacterHeight(FS_xxx) and FONT_HEIGHT_xxx calls.
pull/332/head
Peter Nelson 3 years ago committed by PeterN
parent ce55cd0ce7
commit 9c6c0a0966

@ -87,7 +87,6 @@ public:
virtual void ClearFontCache();
virtual const Sprite *GetGlyph(GlyphID key);
virtual uint GetGlyphWidth(GlyphID key);
virtual int GetHeight() const;
virtual bool GetDrawGlyphShadow();
virtual GlyphID MapCharToGlyph(WChar key) { assert(IsPrintable(key)); return SPRITE_GLYPH | key; }
virtual const void *GetFontTable(uint32 tag, size_t &length) { length = 0; return nullptr; }
@ -102,6 +101,7 @@ public:
SpriteFontCache::SpriteFontCache(FontSize fs) : FontCache(fs), glyph_to_spriteid_map(nullptr)
{
this->InitializeUnicodeGlyphMap();
this->height = ScaleFontTrad(this->GetDefaultFontHeight(this->fs));
}
/**
@ -177,6 +177,7 @@ void SpriteFontCache::ClearGlyphToSpriteMap()
void SpriteFontCache::ClearFontCache()
{
Layouter::ResetFontCache(this->fs);
this->height = ScaleFontTrad(this->GetDefaultFontHeight(this->fs));
}
const Sprite *SpriteFontCache::GetGlyph(GlyphID key)
@ -193,11 +194,6 @@ uint SpriteFontCache::GetGlyphWidth(GlyphID key)
return SpriteExists(sprite) ? GetSprite(sprite, ST_FONT)->width + ScaleFontTrad(this->fs != FS_NORMAL ? 1 : 0) : 0;
}
int SpriteFontCache::GetHeight() const
{
return ScaleFontTrad(this->height);
}
bool SpriteFontCache::GetDrawGlyphShadow()
{
return false;

@ -45,7 +45,7 @@ public:
* Get the height of the font.
* @return The height of the font.
*/
virtual int GetHeight() const { return this->height; }
inline int GetHeight() const { return this->height; }
/**
* Get the ascender value of the font.

Loading…
Cancel
Save