diff options
author | Michael Lutz <michi@icosahedron.de> | 2021-02-13 22:51:18 +0100 |
---|---|---|
committer | Michael Lutz <michi@icosahedron.de> | 2021-02-14 11:48:58 +0100 |
commit | 6755ff63e168dca62d16f3797a1a9dd5ceba307a (patch) | |
tree | f15f534ecfd25f83c8838ca349fc178f756f239b /src/os/macosx/font_osx.h | |
parent | 21a2cd7bc386207c68735edc05a21bb987dddd6b (diff) | |
download | openttd-6755ff63e168dca62d16f3797a1a9dd5ceba307a.tar.xz |
Add: [OSX] Native font rendering without using FreeType.
Diffstat (limited to 'src/os/macosx/font_osx.h')
-rw-r--r-- | src/os/macosx/font_osx.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/os/macosx/font_osx.h b/src/os/macosx/font_osx.h new file mode 100644 index 000000000..bdfd7316d --- /dev/null +++ b/src/os/macosx/font_osx.h @@ -0,0 +1,40 @@ +/* + * This file is part of OpenTTD. + * 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. + * 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. + * 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/>. + */ + +/** @file font_osx.h Functions related to font handling on MacOS. */ + +#ifndef FONT_OSX_H +#define FONT_OSX_H + +#include "../../fontcache_internal.h" +#include "os/macosx/macos.h" + +#include <CoreFoundation/CoreFoundation.h> + +class CoreTextFontCache : public TrueTypeFontCache { + CFAutoRelease<CTFontDescriptorRef> font_desc; ///< Font descriptor exlcuding font size. + CFAutoRelease<CTFontRef> font; ///< CoreText font handle. + + std::string font_name; ///< Cached font name. + + void SetFontSize(int pixels); + const Sprite *InternalGetGlyph(GlyphID key, bool use_aa) override; + const void *InternalGetFontTable(uint32 tag, size_t &length) override; +public: + CoreTextFontCache(FontSize fs, CFAutoRelease<CTFontDescriptorRef> &&font, int pixels); + ~CoreTextFontCache() {} + + void ClearFontCache() override; + GlyphID MapCharToGlyph(WChar key) override; + const char *GetFontName() override { return font_name.c_str(); } + bool IsBuiltInFont() override { return false; } + const void *GetOSHandle() override { return font.get(); } +}; + +void LoadCoreTextFont(FontSize fs); + +#endif /* FONT_OSX_H */ |