diff options
author | Peter Nelson <peter1138@openttd.org> | 2021-05-01 08:54:05 +0100 |
---|---|---|
committer | PeterN <peter@fuzzle.org> | 2021-05-01 10:41:39 +0100 |
commit | 9c6c0a0966f79996dfb7b5c7097c7d6c04a8d35c (patch) | |
tree | 55015f04f1f356f8fdfa60574c73ce5a2908f7c8 | |
parent | ce55cd0ce703acb3a731f7d2d783fb3462fab6c8 (diff) | |
download | openttd-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.cpp | 8 | ||||
-rw-r--r-- | src/fontcache.h | 2 |
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. |