OpenTTD Source 20241224-master-gf74b0cf984
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
19class MockFontCache : public FontCache {
20public:
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
const FontSize fs
The size of the font.
Definition fontcache.h:25
Font cache for mocking basic use of fonts.
GlyphID MapCharToGlyph(char32_t key, bool allow_fallback=true) override
Map a character into a glyph.
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.
const Sprite * GetGlyph(GlyphID) override
Get the glyph (sprite) of the given key.
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?
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