OpenTTD Source  20241121-master-g67a0fccfad
mock_fontcache.h
Go to the documentation of this file.
1 /*
2  * This file is part of OpenTTD.
3  * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
4  * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5  * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
6  */
7 
10 #ifndef MOCK_FONTCACHE_H
11 #define MOCK_FONTCACHE_H
12 
13 #include "../stdafx.h"
14 
15 #include "../fontcache.h"
16 #include "../string_func.h"
17 
19 class MockFontCache : public FontCache {
20 public:
22  {
23  this->height = FontCache::GetDefaultFontHeight(this->fs);
24  }
25 
26  void SetUnicodeGlyph(char32_t, SpriteID) override {}
27  void InitializeUnicodeGlyphMap() override {}
28  void ClearFontCache() override {}
29  const Sprite *GetGlyph(GlyphID) override { return nullptr; }
30  uint GetGlyphWidth(GlyphID) override { return this->height / 2; }
31  bool GetDrawGlyphShadow() override { return false; }
32  GlyphID MapCharToGlyph(char32_t key, [[maybe_unused]] bool allow_fallback = true) override { return key; }
33  std::string GetFontName() override { return "mock"; }
34  bool IsBuiltInFont() override { return true; }
35 
36  static void InitializeFontCaches()
37  {
38  for (FontSize fs = FS_BEGIN; fs != FS_END; fs++) {
39  if (FontCache::caches[fs] == nullptr) new MockFontCache(fs); /* FontCache inserts itself into to the cache. */
40  }
41  }
42 };
43 
44 #endif /* MOCK_FONTCACHE_H */
Font cache for basic fonts.
Definition: fontcache.h:21
int height
The height of the font.
Definition: fontcache.h:26
static FontCache * caches[FS_END]
All the font caches.
Definition: fontcache.h:23
FontCache(FontSize fs)
Create a new font cache.
Definition: fontcache.cpp:35
const FontSize fs
The size of the font.
Definition: fontcache.h:25
Font cache for mocking basic use of fonts.
std::string GetFontName() override
Get the name of this font.
uint GetGlyphWidth(GlyphID) override
Get the width of the glyph with the given key.
void ClearFontCache() override
Clear the font cache.
void SetUnicodeGlyph(char32_t, SpriteID) override
Map a SpriteID to the key.
bool GetDrawGlyphShadow() override
Do we need to draw a glyph shadow?
void InitializeUnicodeGlyphMap() override
Initialize the glyph map.
bool IsBuiltInFont() override
Is this a built-in sprite font?
const Sprite * GetGlyph(GlyphID) override
Get the glyph (sprite) of the given key.
uint32_t GlyphID
Glyphs are characters from a font.
Definition: fontcache.h:17
uint32_t SpriteID
The number of a sprite, without mapping bits and colourtables.
Definition: gfx_type.h:18
FontSize
Available font sizes.
Definition: gfx_type.h:208
@ FS_BEGIN
First font.
Definition: gfx_type.h:215
Data structure describing a sprite.
Definition: spritecache.h:17