# HG changeset patch # User Michael Lutz # Date 2023-12-16 00:03:28 # Node ID 36c20baf9fe4fefa9df8ec206b3d9c987212e283 # Parent c8ec2474d01b83a7472afcf65c12b803627fd1d4 Feature: Scalable OpenTTD TrueType font made by Zephyris. This uses the normal variant for the small font, not the all-caps version. diff --git a/CREDITS.md b/CREDITS.md --- a/CREDITS.md +++ b/CREDITS.md @@ -56,6 +56,7 @@ - George - Canal/Lock graphics - Andrew Parkhouse (andythenorth) - River graphics - David Dallaston (Pikka) - Tram tracks +- Richard Wheeler (zephyris) - OpenTTD TrueType font - All Translators - For their support to make OpenTTD a truly international game - Bug Reporters - Thanks for all bug reports - Chris Sawyer - For an amazing game! diff --git a/media/baseset/CMakeLists.txt b/media/baseset/CMakeLists.txt --- a/media/baseset/CMakeLists.txt +++ b/media/baseset/CMakeLists.txt @@ -18,6 +18,10 @@ set(BASESET_OTHER_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/opntitle.dat ${CMAKE_CURRENT_SOURCE_DIR}/orig_extra.grf ${CMAKE_CURRENT_SOURCE_DIR}/../openttd.32.bmp + ${CMAKE_CURRENT_SOURCE_DIR}/OpenTTD-Sans.ttf + ${CMAKE_CURRENT_SOURCE_DIR}/OpenTTD-Serif.ttf + ${CMAKE_CURRENT_SOURCE_DIR}/OpenTTD-Small.ttf + ${CMAKE_CURRENT_SOURCE_DIR}/OpenTTD-Mono.ttf ) # Done by the subdirectories, if nforenum / grfcodec is installed diff --git a/media/baseset/OpenTTD-Mono.ttf b/media/baseset/OpenTTD-Mono.ttf new file mode 100644 index 0000000000000000000000000000000000000000..678050e5121c35c3e9bf82753126efe0c8b44691 GIT binary patch literal 63012 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 T)g`_6mYda|JiPaV+Xnsz&AV@I diff --git a/media/baseset/OpenTTD-Serif.ttf b/media/baseset/OpenTTD-Serif.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5a139b99f1cd6e58d9527d9786252ca50387c233 GIT binary patch literal 77168 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 H`0@V>g((OX diff --git a/media/baseset/OpenTTD-Small.ttf b/media/baseset/OpenTTD-Small.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5e702c1850a51aae2215e6ea41b43590f01146ca GIT binary patch literal 56264 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 K3QTXg`wIY5Y<-mg diff --git a/media/baseset/OpenTTD-font.md b/media/baseset/OpenTTD-font.md new file mode 100644 --- /dev/null +++ b/media/baseset/OpenTTD-font.md @@ -0,0 +1,6 @@ +# OpenTTD TrueType font + +The OpenTTD TrueType font was created by Zephyris and is maintained on [Github](https://github.com/zephyris/openttd-ttf). +It is licensed under GPL-2.0. + +The currently included files correspond to release v0.3. diff --git a/src/fontcache.cpp b/src/fontcache.cpp --- a/src/fontcache.cpp +++ b/src/fontcache.cpp @@ -18,6 +18,7 @@ #include "strings_func.h" #include "viewport_func.h" #include "window_func.h" +#include "fileio_func.h" #include "safeguards.h" @@ -143,13 +144,52 @@ void SetFont(FontSize fontsize, const st #ifdef WITH_FREETYPE extern void LoadFreeTypeFont(FontSize fs); +extern void LoadFreeTypeFont(FontSize fs, const std::string &file_name, uint size); extern void UninitFreeType(); #elif defined(_WIN32) extern void LoadWin32Font(FontSize fs); +extern void LoadWin32Font(FontSize fs, const std::string &file_name, uint size); #elif defined(WITH_COCOA) extern void LoadCoreTextFont(FontSize fs); +extern void LoadCoreTextFont(FontSize fs, const std::string &file_name, uint size); #endif +static void TryLoadDefaultTrueTypeFont([[maybe_unused]] FontSize fs) +{ +#if defined(WITH_FREETYPE) || defined(_WIN32) || defined(WITH_COCOA) + std::string font_name{}; + switch (fs) { + case FS_NORMAL: + font_name = "OpenTTD-Sans.ttf"; + break; + case FS_SMALL: + font_name = "OpenTTD-Small.ttf"; + break; + case FS_LARGE: + font_name = "OpenTTD-Serif.ttf"; + break; + case FS_MONO: + font_name = "OpenTTD-Mono.ttf"; + break; + + default: NOT_REACHED(); + } + + /* Find font file. */ + std::string full_font = FioFindFullPath(BASESET_DIR, font_name); + if (!full_font.empty()) { + int size = FontCache::GetDefaultFontHeight(fs); +#ifdef WITH_FREETYPE + LoadFreeTypeFont(fs, full_font, size); +#elif defined(_WIN32) + LoadWin32Font(fs, full_font, size); +#elif defined(WITH_COCOA) + LoadCoreTextFont(fs, full_font, size); +#endif + } +#endif /* defined(WITH_FREETYPE) || defined(_WIN32) || defined(WITH_COCOA) */ +} + /** * (Re)initialize the font cache related things, i.e. load the non-sprite fonts. * @param monospace Whether to initialise the monospace or regular fonts. @@ -164,13 +204,17 @@ void InitFontCache(bool monospace) FontCache *fc = FontCache::Get(fs); if (fc->HasParent()) delete fc; + if (GetFontCacheSubSetting(fs)->font.empty()) { + TryLoadDefaultTrueTypeFont(fs); + } else { #ifdef WITH_FREETYPE - LoadFreeTypeFont(fs); + LoadFreeTypeFont(fs); #elif defined(_WIN32) - LoadWin32Font(fs); + LoadWin32Font(fs); #elif defined(WITH_COCOA) - LoadCoreTextFont(fs); + LoadCoreTextFont(fs); #endif + } } } diff --git a/src/fontcache/freetypefontcache.cpp b/src/fontcache/freetypefontcache.cpp --- a/src/fontcache/freetypefontcache.cpp +++ b/src/fontcache/freetypefontcache.cpp @@ -115,6 +115,42 @@ void FreeTypeFontCache::SetFontSize(Font } } +static FT_Error LoadFont(FontSize fs, FT_Face face, const char *font_name, uint size) +{ + Debug(fontcache, 2, "Requested '{}', using '{} {}'", font_name, face->family_name, face->style_name); + + /* Attempt to select the unicode character map */ + FT_Error error = FT_Select_Charmap(face, ft_encoding_unicode); + if (error == FT_Err_Ok) goto found_face; // Success + + if (error == FT_Err_Invalid_CharMap_Handle) { + /* Try to pick a different character map instead. We default to + * the first map, but platform_id 0 encoding_id 0 should also + * be unicode (strange system...) */ + FT_CharMap found = face->charmaps[0]; + int i; + + for (i = 0; i < face->num_charmaps; i++) { + FT_CharMap charmap = face->charmaps[i]; + if (charmap->platform_id == 0 && charmap->encoding_id == 0) { + found = charmap; + } + } + + if (found != nullptr) { + error = FT_Set_Charmap(face, found); + if (error == FT_Err_Ok) goto found_face; + } + } + + FT_Done_Face(face); + return error; + +found_face: + new FreeTypeFontCache(fs, face, size); + return FT_Err_Ok; +} + /** * Loads the freetype font. * First type to load the fontname as if it were a path. If that fails, @@ -157,40 +193,40 @@ void LoadFreeTypeFont(FontSize fs) if (error != FT_Err_Ok) error = GetFontByFaceName(font_name, &face); if (error == FT_Err_Ok) { - Debug(fontcache, 2, "Requested '{}', using '{} {}'", font_name, face->family_name, face->style_name); - - /* Attempt to select the unicode character map */ - error = FT_Select_Charmap(face, ft_encoding_unicode); - if (error == FT_Err_Ok) goto found_face; // Success - - if (error == FT_Err_Invalid_CharMap_Handle) { - /* Try to pick a different character map instead. We default to - * the first map, but platform_id 0 encoding_id 0 should also - * be unicode (strange system...) */ - FT_CharMap found = face->charmaps[0]; - int i; + error = LoadFont(fs, face, font_name, settings->size); + if (error != FT_Err_Ok) { + ShowInfo("Unable to use '{}' for {} font, FreeType reported error 0x{:X}, using sprite font instead", font_name, FontSizeToName(fs), error); + } + } else { + FT_Done_Face(face); + } +} - for (i = 0; i < face->num_charmaps; i++) { - FT_CharMap charmap = face->charmaps[i]; - if (charmap->platform_id == 0 && charmap->encoding_id == 0) { - found = charmap; - } - } +/** + * Load a TrueType font from a file. + * @param fs The font size to load. + * @param file_name Path to the font file. + * @param size Requested font size. + */ +void LoadFreeTypeFont(FontSize fs, const std::string &file_name, uint size) +{ + if (_library == nullptr) { + if (FT_Init_FreeType(&_library) != FT_Err_Ok) { + ShowInfo("Unable to initialize FreeType, using sprite fonts instead"); + return; + } - if (found != nullptr) { - error = FT_Set_Charmap(face, found); - if (error == FT_Err_Ok) goto found_face; - } - } + Debug(fontcache, 2, "Initialized"); } - FT_Done_Face(face); - - ShowInfo("Unable to use '{}' for {} font, FreeType reported error 0x{:X}, using sprite font instead", font_name, FontSizeToName(fs), error); - return; - -found_face: - new FreeTypeFontCache(fs, face, settings->size); + FT_Face face = nullptr; + int32_t index = 0; + FT_Error error = FT_New_Face(_library, file_name.c_str(), index, &face); + if (error == FT_Err_Ok) { + LoadFont(fs, face, file_name.c_str(), size); + } else { + FT_Done_Face(face); + } } diff --git a/src/os/macosx/font_osx.cpp b/src/os/macosx/font_osx.cpp --- a/src/os/macosx/font_osx.cpp +++ b/src/os/macosx/font_osx.cpp @@ -298,6 +298,40 @@ const Sprite *CoreTextFontCache::Interna return new_glyph.sprite; } +static CTFontDescriptorRef LoadFontFromFile(const std::string &font_name) +{ + if (!MacOSVersionIsAtLeast(10, 6, 0)) return nullptr; + + /* Might be a font file name, try load it. Direct font loading is + * only supported starting on OSX 10.6. */ + CFAutoRelease path; + + /* See if this is an absolute path. */ + if (FileExists(font_name)) { + path.reset(CFStringCreateWithCString(kCFAllocatorDefault, font_name.c_str(), kCFStringEncodingUTF8)); + } else { + /* Scan the search-paths to see if it can be found. */ + std::string full_font = FioFindFullPath(BASE_DIR, font_name); + if (!full_font.empty()) { + path.reset(CFStringCreateWithCString(kCFAllocatorDefault, full_font.c_str(), kCFStringEncodingUTF8)); + } + } + + if (path) { + /* Try getting a font descriptor to see if the system can use it. */ + CFAutoRelease url(CFURLCreateWithFileSystemPath(kCFAllocatorDefault, path.get(), kCFURLPOSIXPathStyle, false)); + CFAutoRelease descs(CTFontManagerCreateFontDescriptorsFromURL(url.get())); + + if (descs && CFArrayGetCount(descs.get()) > 0) { + CTFontDescriptorRef font_ref = (CTFontDescriptorRef)CFArrayGetValueAtIndex(descs.get(), 0); + CFRetain(font_ref); + return font_ref; + } + } + + return nullptr; +} + /** * Loads the TrueType font. * If a CoreText font description is present, e.g. from the automatic font @@ -318,33 +352,9 @@ void LoadCoreTextFont(FontSize fs) } if (!font_ref && MacOSVersionIsAtLeast(10, 6, 0)) { - /* Might be a font file name, try load it. Direct font loading is - * only supported starting on OSX 10.6. */ - CFAutoRelease path; - - /* See if this is an absolute path. */ - if (FileExists(settings->font)) { - path.reset(CFStringCreateWithCString(kCFAllocatorDefault, settings->font.c_str(), kCFStringEncodingUTF8)); - } else { - /* Scan the search-paths to see if it can be found. */ - std::string full_font = FioFindFullPath(BASE_DIR, settings->font); - if (!full_font.empty()) { - path.reset(CFStringCreateWithCString(kCFAllocatorDefault, full_font.c_str(), kCFStringEncodingUTF8)); - } - } - - if (path) { - /* Try getting a font descriptor to see if the system can use it. */ - CFAutoRelease url(CFURLCreateWithFileSystemPath(kCFAllocatorDefault, path.get(), kCFURLPOSIXPathStyle, false)); - CFAutoRelease descs(CTFontManagerCreateFontDescriptorsFromURL(url.get())); - - if (descs && CFArrayGetCount(descs.get()) > 0) { - font_ref.reset((CTFontDescriptorRef)CFArrayGetValueAtIndex(descs.get(), 0)); - CFRetain(font_ref.get()); - } else { - ShowInfo("Unable to load file '{}' for {} font, using default OS font selection instead", settings->font, FontSizeToName(fs)); - } - } + /* Might be a font file name, try load it. */ + font_ref.reset(LoadFontFromFile(settings->font)); + if (!font_ref) ShowInfo("Unable to load file '{}' for {} font, using default OS font selection instead", settings->font, FontSizeToName(fs)); } if (!font_ref) { @@ -372,3 +382,17 @@ void LoadCoreTextFont(FontSize fs) new CoreTextFontCache(fs, std::move(font_ref), settings->size); } + +/** + * Load a TrueType font from a file. + * @param fs The font size to load. + * @param file_name Path to the font file. + * @param size Requested font size. + */ +void LoadCoreTextFont(FontSize fs, const std::string &file_name, uint size) +{ + CFAutoRelease font_ref{LoadFontFromFile(file_name)}; + if (font_ref) { + new CoreTextFontCache(fs, std::move(font_ref), size); + } +} diff --git a/src/os/macosx/font_osx.h b/src/os/macosx/font_osx.h --- a/src/os/macosx/font_osx.h +++ b/src/os/macosx/font_osx.h @@ -36,5 +36,6 @@ public: }; void LoadCoreTextFont(FontSize fs); +void LoadCoreTextFont(FontSize fs, const std::string &file_name, uint size); #endif /* FONT_OSX_H */ diff --git a/src/os/windows/font_win32.cpp b/src/os/windows/font_win32.cpp --- a/src/os/windows/font_win32.cpp +++ b/src/os/windows/font_win32.cpp @@ -317,6 +317,66 @@ void Win32FontCache::ClearFontCache() } +static bool TryLoadFontFromFile(const std::string &font_name, LOGFONT &logfont) +{ + wchar_t fontPath[MAX_PATH] = {}; + + /* See if this is an absolute path. */ + if (FileExists(font_name)) { + convert_to_fs(font_name, fontPath, lengthof(fontPath)); + } else { + /* Scan the search-paths to see if it can be found. */ + std::string full_font = FioFindFullPath(BASE_DIR, font_name); + if (!full_font.empty()) { + convert_to_fs(font_name, fontPath, lengthof(fontPath)); + } + } + + if (fontPath[0] != 0) { + if (AddFontResourceEx(fontPath, FR_PRIVATE, 0) != 0) { + /* Try a nice little undocumented function first for getting the internal font name. + * Some documentation is found at: http://www.undocprint.org/winspool/getfontresourceinfo */ + static LibraryLoader _gdi32("gdi32.dll"); + typedef BOOL(WINAPI *PFNGETFONTRESOURCEINFO)(LPCTSTR, LPDWORD, LPVOID, DWORD); + static PFNGETFONTRESOURCEINFO GetFontResourceInfo = _gdi32.GetFunction("GetFontResourceInfoW"); + + if (GetFontResourceInfo != nullptr) { + /* Try to query an array of LOGFONTs that describe the file. */ + DWORD len = 0; + if (GetFontResourceInfo(fontPath, &len, nullptr, 2) && len >= sizeof(LOGFONT)) { + LOGFONT *buf = (LOGFONT *)new byte[len]; + if (GetFontResourceInfo(fontPath, &len, buf, 2)) { + logfont = *buf; // Just use first entry. + } + delete[](byte *)buf; + } + } + + /* No dice yet. Use the file name as the font face name, hoping it matches. */ + if (logfont.lfFaceName[0] == 0) { + wchar_t fname[_MAX_FNAME]; + _wsplitpath(fontPath, nullptr, nullptr, fname, nullptr); + + wcsncpy_s(logfont.lfFaceName, lengthof(logfont.lfFaceName), fname, _TRUNCATE); + logfont.lfWeight = strcasestr(font_name.c_str(), " bold") != nullptr || strcasestr(font_name.c_str(), "-bold") != nullptr ? FW_BOLD : FW_NORMAL; // Poor man's way to allow selecting bold fonts. + } + } + } + + return logfont.lfFaceName[0] != 0; +} + +static void LoadWin32Font(FontSize fs, const LOGFONT &logfont, uint size, const char *font_name) +{ + HFONT font = CreateFontIndirect(&logfont); + if (font == nullptr) { + ShowInfo("Unable to use '{}' for {} font, Win32 reported error 0x{:X}, using sprite font instead", font_name, FontSizeToName(fs), GetLastError()); + return; + } + DeleteObject(font); + + new Win32FontCache(fs, logfont, size); +} /** * Loads the GDI font. * If a GDI font description is present, e.g. from the automatic font @@ -341,51 +401,8 @@ void LoadWin32Font(FontSize fs) logfont = *(const LOGFONT *)settings->os_handle; } else if (strchr(font_name, '.') != nullptr) { /* Might be a font file name, try load it. */ - - wchar_t fontPath[MAX_PATH] = {}; - - /* See if this is an absolute path. */ - if (FileExists(settings->font)) { - convert_to_fs(font_name, fontPath, lengthof(fontPath)); - } else { - /* Scan the search-paths to see if it can be found. */ - std::string full_font = FioFindFullPath(BASE_DIR, font_name); - if (!full_font.empty()) { - convert_to_fs(font_name, fontPath, lengthof(fontPath)); - } - } - - if (fontPath[0] != 0) { - if (AddFontResourceEx(fontPath, FR_PRIVATE, 0) != 0) { - /* Try a nice little undocumented function first for getting the internal font name. - * Some documentation is found at: http://www.undocprint.org/winspool/getfontresourceinfo */ - static LibraryLoader _gdi32("gdi32.dll"); - typedef BOOL(WINAPI *PFNGETFONTRESOURCEINFO)(LPCTSTR, LPDWORD, LPVOID, DWORD); - static PFNGETFONTRESOURCEINFO GetFontResourceInfo = _gdi32.GetFunction("GetFontResourceInfoW"); - - if (GetFontResourceInfo != nullptr) { - /* Try to query an array of LOGFONTs that describe the file. */ - DWORD len = 0; - if (GetFontResourceInfo(fontPath, &len, nullptr, 2) && len >= sizeof(LOGFONT)) { - LOGFONT *buf = (LOGFONT *)new byte[len]; - if (GetFontResourceInfo(fontPath, &len, buf, 2)) { - logfont = *buf; // Just use first entry. - } - delete[] (byte *)buf; - } - } - - /* No dice yet. Use the file name as the font face name, hoping it matches. */ - if (logfont.lfFaceName[0] == 0) { - wchar_t fname[_MAX_FNAME]; - _wsplitpath(fontPath, nullptr, nullptr, fname, nullptr); - - wcsncpy_s(logfont.lfFaceName, lengthof(logfont.lfFaceName), fname, _TRUNCATE); - logfont.lfWeight = strcasestr(font_name, " bold") != nullptr || strcasestr(font_name, "-bold") != nullptr ? FW_BOLD : FW_NORMAL; // Poor man's way to allow selecting bold fonts. - } - } else { - ShowInfo("Unable to load file '{}' for {} font, using default windows font selection instead", font_name, FontSizeToName(fs)); - } + if (!TryLoadFontFromFile(settings->font, logfont)) { + ShowInfo("Unable to load file '{}' for {} font, using default windows font selection instead", font_name, FontSizeToName(fs)); } } @@ -394,12 +411,25 @@ void LoadWin32Font(FontSize fs) convert_to_fs(font_name, logfont.lfFaceName, lengthof(logfont.lfFaceName)); } - HFONT font = CreateFontIndirect(&logfont); - if (font == nullptr) { - ShowInfo("Unable to use '{}' for {} font, Win32 reported error 0x{:X}, using sprite font instead", font_name, FontSizeToName(fs), GetLastError()); - return; + LoadWin32Font(fs, logfont, settings->size, font_name); +} + +/** + * Load a TrueType font from a file. + * @param fs The font size to load. + * @param file_name Path to the font file. + * @param size Requested font size. + */ +void LoadWin32Font(FontSize fs, const std::string &file_name, uint size) +{ + LOGFONT logfont; + MemSetT(&logfont, 0); + logfont.lfPitchAndFamily = fs == FS_MONO ? FIXED_PITCH : VARIABLE_PITCH; + logfont.lfCharSet = DEFAULT_CHARSET; + logfont.lfOutPrecision = OUT_OUTLINE_PRECIS; + logfont.lfClipPrecision = CLIP_DEFAULT_PRECIS; + + if (TryLoadFontFromFile(file_name, logfont)) { + LoadWin32Font(fs, logfont, size, file_name.c_str()); } - DeleteObject(font); - - new Win32FontCache(fs, logfont, settings->size); } diff --git a/src/os/windows/font_win32.h b/src/os/windows/font_win32.h --- a/src/os/windows/font_win32.h +++ b/src/os/windows/font_win32.h @@ -41,5 +41,6 @@ public: }; void LoadWin32Font(FontSize fs); +void LoadWin32Font(FontSize fs, const std::string &file_name, uint size); #endif /* FONT_WIN32_H */