Peter Nelson
f1e831233a
Codefix: Mark destructors override. ( #14925 )
...
Remove some empty destructors.
2025-12-19 18:14:29 +00:00
Peter Nelson
b03347f00c
Revert: "Change: Support side-by-side fallback FontCaches instead of hierarchical. ( #13303 )"
...
This reverts commit 1829f7926d .
2025-12-13 09:09:21 +00:00
Peter Nelson
973514adc3
Revert: "Add: Automatically load fonts for missing glyphs. ( #14856 )"
...
This reverts commit c1d37d8699 .
2025-12-13 09:09:21 +00:00
Cyprian Klimaszewski
99f04f27de
Doc: Update information for receiving a copy of GPL. ( #14869 )
2025-12-07 11:25:08 +00:00
Peter Nelson
c1d37d8699
Add: Automatically load fonts for missing glyphs. ( #14856 )
2025-12-06 12:22:25 +00:00
Peter Nelson
1829f7926d
Change: Support side-by-side fallback FontCaches instead of hierarchical. ( #13303 )
...
The text layouter system can now support using different fonts for different glyphs, including mixing scalable and sprite glyphs.
2025-12-06 10:47:12 +00:00
Rubidium
aa7eb089c6
Codechange: make all Providers fully const (Font/Screenshot/Sound)
2025-09-29 23:39:13 +03:00
Peter Nelson
5ed8f1203b
Codechange: Cleanup unnecessary includes of spritecache.h ( #14678 )
2025-09-28 17:09:57 +00:00
Peter Nelson
e1a50abcbb
Codechange: Move fallback font detection to FontCacheFactory.
...
Provides a standard interface instead of relying on defines.
2025-08-07 19:38:00 +01:00
Peter Nelson
140f2b291a
Codechange: Use ProviderManager interface to register FontCache factories.
...
This removes use of #ifdefs to select the appropriate loader, and also replaces FontCache self-registration.
2025-08-07 19:38:00 +01:00
Peter Nelson
b82ffa3542
Codechange: Decouple glyph map from SpriteFontCache instances. ( #14449 )
...
This makes the map independent from the SpriteFontCache instances.
2025-07-20 22:58:43 +01:00
Peter Nelson
0dc40877fd
Codechange: Initialise/reset font cache with FontSizes bitset. ( #14448 )
...
Instead of choosing either "Normal/Small/Large" or "Monospace", use an EnumBitSet to allow any combination.
2025-07-18 18:23:28 +01:00
Peter Nelson
bf6d0c4934
Codechange: Don't pre-fill font metrics when loading fonts. ( #14436 )
...
Each font cache implementation sets its own metrics based on the loaded font, so there is no need to pre-fill with (unscaled, invalid) default metrics.
2025-07-13 23:38:31 +01:00
Peter Nelson
209b0320d5
Fix #12735 : Default fonts should use default font size as-is. ( #12814 )
...
Minimum readable font size should only apply to fallback and configured fonts.
2024-06-26 12:45:39 +01:00
Peter Nelson
3c42f701d7
Fix: Allow changing size of default OpenTTD font. ( #12641 )
...
* Fix: Allow changing size of default OpenTTD font.
Size configuration for default font was ignored as a different code path to load the font was followed.
Resolved by removing this additional path and conditionally selecting the default font.
2024-05-26 15:59:25 +01:00
Peter Nelson
980dcaac6e
Cleanup: Remove GetFontTable from FontCache. ( #12677 )
...
This interface is no longer used, so does not need to be implemented.
Removes manual memory management with malloc/free.
2024-05-14 21:13:26 +01:00
Peter Nelson
d78f39a9df
Cleanup: Remove GetUnitsPerEM and units_per_em. ( #12656 )
...
GetUnitsPerEM is never called.
2024-05-11 14:50:34 +01:00
ladysadie
727392e0b3
Codechange: Remove per font AA settings. ( #12413 )
...
OpenTTD will use the global AA font setting for all fonts from now on.
2024-04-15 21:44:33 +02:00
Michael Lutz
e1f5be6244
Add: GUI options to select sprite font and AA mode for all fonts.
2024-01-14 22:50:56 +01:00
Michael Lutz
6e766a2e81
Change: Allow TrueType fonts to provide our private-use glyphs.
2024-01-14 22:50:56 +01:00
Rubidium
3a676a5af0
Codechange: replace static inline with static for non-class functions
2024-01-06 13:37:33 +01:00
Peter Nelson
46f63074da
Add: MockFontCache for testing GUI code that only needs to know font sizes.
2023-11-05 19:24:59 +00:00
Rubidium
eaae0bb5e7
Codechange: automatic adding of _t to (u)int types, and WChar to char32_t
...
for i in `find src -type f|grep -v 3rdparty/fmt|grep -v 3rdparty/catch2|grep -v 3rdparty/opengl|grep -v stdafx.h`; do sed 's/uint16& /uint16 \&/g;s/int8\([ >*),;[]\)/int8_t\1/g;s/int16\([ >*),;[]\)/int16_t\1/g;s/int32\([ >*),;[]\)/int32_t\1/g;s/int64\([ >*),;[]\)/int64_t\1/g;s/ uint32(/ uint32_t(/g;s/_uint8_t/_uint8/;s/Uint8_t/Uint8/;s/ft_int64_t/ft_int64/g;s/uint64$/uint64_t/;s/WChar/char32_t/g;s/char32_t char32_t/char32_t WChar/' -i $i; done
2023-07-19 19:30:14 +02:00
Jonathan G Rennison
a6b625eea3
Fix #10993 : Crash log when font caches not initialised ( #11024 )
...
See also: #10836
2023-06-17 17:56:27 +01:00
Peter Nelson
9976293c1e
Codechange: Return fontcache font name as std::string.
2023-05-27 20:40:25 +01:00
Peter Nelson
f454ec8d63
Fix: Don't rely on static initialization to set up sprite font caches.
...
The order of static initialization is undefined, so this can cause initalization
before relevant caches are initializations.
2023-05-18 12:18:30 +01:00
glx22
04ee86d3ac
Add: 'font' console command to configure fonts
2022-12-23 23:23:03 +01:00
glx22
af3df959c2
Codechange: reduce code duplication
2022-12-23 23:23:03 +01:00
Peter Nelson
daaa058493
Change: Vertically centre sprite font relative to TrueType font.
2022-12-18 11:46:01 -05:00
Peter Nelson
b00e18fe9f
Cleanup: Remove unused GetUnicodeGlyph()
2022-09-25 18:34:24 +01:00
Peter Nelson
2cdd8b7429
Change: Separate fontcache implementations.
2022-09-25 18:34:24 +01:00
Peter Nelson
f6ad8e1c9c
Change: Rename some freetype things to fontcache.
...
The font cache supports more than just FreeType as a font provider, but still used freetype in some naming.
This now uses more suitable terms.
2022-09-25 18:34:24 +01:00
rubidium42
77330d09fd
Codechange: move font settings to std::string
2021-05-13 23:13:17 +02:00
Peter Nelson
9c6c0a0966
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.
2021-05-01 10:41:39 +01:00
Michael Lutz
46e13313e4
Fix #8731 : Always use a 32bpp blitter if font anti-aliasing is enabled.
2021-02-23 22:15:03 +01:00
Michael Lutz
c6af8f16f6
Codechange: [Win32] Move Win32-specific font code to a seperate file.
2021-02-13 20:09:14 +01:00
Michael Lutz
5ad1640984
Codechange: Make OS font handle of the FontCache read-only.
2021-02-13 20:09:14 +01:00
Michael Lutz
2b0200d429
Codechange: OS-specific data for font search is not used outside of searching.
2021-02-13 20:09:14 +01:00
S. D. Cloudt
13cc8a0cee
Cleanup: Removed SVN headers
2019-11-10 17:59:20 +00:00
Michael Lutz
d2ed426077
Codechange: [Win32] Pass a native GDI font description around when we have one, instead of repeatedly guessing the font.
2019-05-14 11:21:36 +01:00
Michael Lutz
2675762ae9
Add: [Win32] GDI engine for font glyph rendering as a replacement for including FreeType.
...
Building with FreeType is still possible and will take precedence over the GDI renderer, but
the project files don't include FreeType anymore by default. Combining GDI rendering with ICU
text layout is untested.
2019-05-14 11:21:36 +01:00
Henry Wilson
7c8e7c6b6e
Codechange: Use null pointer literal instead of the NULL macro
2019-04-10 23:22:20 +02:00
Michael Lutz
32ce1ce347
Add: [OSX] Text layout using the native CoreText API.
...
By default, the native API will be used instead of ICU, but if ICU is
forced in using configure, it will take precedence.
2018-12-08 20:13:27 +01:00
Michael Lutz
768a31bfe3
Add: [Win32] Text layout using the native Windows Uniscribe library.
...
Uniscribe is sometimes producing different results compared to ICU, especially
when RTL and LTR content is mixed. Comparing the results to other programs
(like editors or web browsers) leads me to believe that the result are at least
not worse than ICU and possibly better.
2018-06-06 21:37:09 +02:00
peter1138
1088ad48fc
(svn r27004) -Codechange: Make GUI size apply to (sprite-font) text as well.
2014-10-12 20:43:25 +00:00
rubidium
00c05e79b1
(svn r26170) -Feature-ish: add the currently used fonts to the crash log
2013-12-22 17:46:27 +00:00
frosch
dcec8b9abd
(svn r25860) -Fix [FS#5737] (r25570): When clearing font cache, also clear layout cache. (adf88)
2013-10-13 13:28:06 +00:00
rubidium
0c14a586bd
(svn r25493) -Codechange: support for the safer variant of ICU's getFontTable
2013-06-27 21:21:47 +00:00
rubidium
7b10e39bf1
(svn r25469) -Add: method for getting the font tables from freetype fonts
2013-06-25 20:39:58 +00:00
rubidium
43a37f7f28
(svn r25463) -Codechange: export more size related information from the fonts
2013-06-25 20:21:21 +00:00