summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Nelson <peter1138@openttd.org>2021-05-01 08:54:05 +0100
committerPeterN <peter@fuzzle.org>2021-05-01 10:41:39 +0100
commit9c6c0a0966f79996dfb7b5c7097c7d6c04a8d35c (patch)
tree55015f04f1f356f8fdfa60574c73ce5a2908f7c8
parentce55cd0ce703acb3a731f7d2d783fb3462fab6c8 (diff)
downloadopenttd-9c6c0a0966f79996dfb7b5c7097c7d6c04a8d35c.tar.xz
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.
-rw-r--r--src/fontcache.cpp8
-rw-r--r--src/fontcache.h2
2 files changed, 3 insertions, 7 deletions
diff --git a/src/fontcache.cpp b/src/fontcache.cpp
index 1290777c0..ce15233b7 100644
--- a/src/fontcache.cpp
+++ b/src/fontcache.cpp
@@ -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;
diff --git a/src/fontcache.h b/src/fontcache.h
index 73675cf44..c3b20cb4f 100644
--- a/src/fontcache.h
+++ b/src/fontcache.h
@@ -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.