Peter Nelson
5aae8e2d64
Codechange: make Subdirectory a scoped enum
2026-04-05 21:46:07 +01:00
Peter Nelson
f864aaf131
Change: test font for eligibility before adding as fallback
...
Avoids reloading fonts and scanning for missing glyphs for each searched font.
2026-04-03 19:45:46 +01:00
Peter Nelson
9a0af4387b
Codechange: pass required font/os_handle via FontProviderManager::LoadFont()
...
This allows fonts other than configured to be loaded.
2026-04-03 19:45:46 +01:00
Peter Nelson
cdfbb113ce
Codechange: MissingGlyphSearcher now contains which fontsizes to search for
2026-04-03 19:45:46 +01:00
Peter Nelson
36878bfbc8
Codechange: remove duplicate and out-of-date documentation for LoadFont ( #15411 )
...
Move comments inline to code where useful.
2026-04-02 12:20:46 +01:00
Rubidium
6370859c7e
Codechange: add missing documentation to destructors
2026-02-24 16:24:53 +01:00
Rubidium
8f9ceeec75
Codechange: add parameter and return documentation
2026-02-18 22:56:54 +01:00
Rubidium
c6c06e13eb
Codefix: wrong parameter names and partially missing parameters
2026-02-02 16:31:46 +01: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
Cyprian Klimaszewski
99f04f27de
Doc: Update information for receiving a copy of GPL. ( #14869 )
2025-12-07 11:25:08 +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
Peter Nelson
06b830dc07
Codechange: Prefer string equality instead of comparison. ( #14727 )
2025-10-24 21:30:03 +02:00
Rubidium
aa7eb089c6
Codechange: make all Providers fully const (Font/Screenshot/Sound)
2025-09-29 23:39:13 +03: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
Rubidium
8f1e94c546
Codechange: use C++ initialisation over MemSetT
2025-05-06 20:03:35 +02:00
frosch
8571af9833
Codechange: Turn ZoomLevel into enum class.
2025-05-03 23:21:09 +02:00
frosch
bb767608de
Codechange: Pass SpriteType as direct parameter to SpriteEncoder::Encoder.
2025-05-03 18:43:20 +02:00
frosch
9229956f04
Codechange: Replace strcasestr with StrContainsIgnoreCase.
2025-04-09 17:19:11 +02:00
Patric Stout
86841ba1f0
Codechange: no longer add "src" to the include-path ( #13511 )
2025-02-09 19:43:15 +00:00
Peter Nelson
ba20ea5d18
Codechange: Use EnumBitSet for SpriteComponent. ( #13509 )
2025-02-09 18:37:01 +00:00
Loïc Guilloux
ef826a048a
Codechange: [WIN32] Use language isocode for fallback font detection ( #13310 )
2025-01-21 15:57:09 +01:00
Loïc Guilloux
4670a62342
Fix: [Win32] Font detection didn't work for locales not supporting code pages ( #13306 )
2025-01-12 17:23:41 +01:00
Peter Nelson
e2a796dbcd
Codefix: Potential unterminated string returned from convert_to_fs.
...
Converting from UTF-8 to UTF-16 could have resulted in a buffer overflow if the buffer size was exactly the length of the converted string.
Pass string_view/span to convert_from/to_fs instead, and ensure the buffer is terminated. This replaces passing a pointer to the buffer and the buffer size as separate parameters, allowing the compiler to pass both in one parameter.
Removes use of `lengthof()`.
2024-07-10 20:57:02 +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
48539992e8
Codechange: Use std::unordered_map for storing TrueTypeFontCache's GlyphEntry.
2024-05-30 20:16:28 +01:00
Peter Nelson
7b717fcccb
Codechange: Replace AllocatorProc with SpriteAllocator class.
...
This allows for state to be passed to or maintained by the allocator.
2024-05-30 20:16:28 +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
c85481564f
Codechange: Use reusable temporary buffer in Win32FontCache. ( #12666 )
...
This avoids allocating and deleting a temporary buffer for every glyph that is rendered into a sprite.
2024-05-17 08:50:59 +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
Peter Nelson
ec61951512
Cleanup: Remove Windows 9x font locale workaround. ( #12644 )
2024-05-09 07:03:02 +01:00
Peter Nelson
3c94e81665
Codechange: Use ZOOM_LVL_MIN to refer to first zoom level.
...
Many uses of ZOOM_LVL_NORMAL actually just want the first zoom level slot, so use ZOOM_LVL_MIN to make this clearer.
2024-04-04 22:27:03 +01:00
Loïc Guilloux
11aa3694fa
Fix: [Win32] Force font mapper to only use TrueType fonts ( #12406 )
2024-04-01 22:59:13 +02:00
Patric Stout
a3cfd23cf9
Codechange: rename byte to uint8_t ( #12308 )
2024-03-16 23:59:32 +01:00
Michael Lutz
36cf6b1d13
Feature: Scalable OpenTTD TrueType font made by Zephyris.
...
This uses the normal variant for the small font, not the all-caps version.
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
Patric Stout
d3ee045c2d
Codechange: refactor the Windows-only DllLoader in a cross-platform LibraryLoader ( #11751 )
2024-01-10 21:38:58 +00:00
Peter Nelson
b85ecf9ac2
Codechange: Replace pointer to Sprite array with reference to SpriteCollection. ( #11580 )
...
Add `SpriteLoader::SpriteCollection` type which is an array of `SpriteLoad::Sprite`.
This removes the ambiguity of what `SpriteLoader::Sprite *` is pointing to,
and cleans up mismatches using both dereference -> and array access [] for the
same object.
2023-12-20 20:38:21 +00:00
Peter Nelson
d4008850e3
Codechange: Ensure function opening { is on new line.
2023-11-09 20:15:38 +00:00
frosch
5733145c59
Cleanup: Remove unneeded parameters.
2023-09-19 22:49:59 +02:00
frosch
b6c8f301be
Codechange: Silence warnings about intentionally unused parameters.
2023-09-19 22:49:59 +02: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
PeterN
eda3defcb5
Codechange: Pass language for font detection as std::string. ( #10964 )
2023-06-06 20:55:56 +00:00
PeterN
7a0b6b7ddf
Codechange: Remove Freetype bits on Win32/OSX. ( #10960 )
...
These platforms have their own specific font rendering.
2023-06-06 19:43:27 +01:00
Peter Nelson
c38df2d589
Codechange: Use std::map instead of custom SmallMap.
2023-05-18 12:18:30 +01:00
Rubidium
4dd5f994be
Codechange: replace strncasecmp with case ignoring variant of StrStarts/EndsWith
2023-04-29 10:25:25 +02:00
Rubidium
f74e26ca7e
Codechange: replace error/usererror printf variant with fmt variant and rename
2023-04-25 17:55:09 +02:00
Rubidium
f5f6306af3
Codechange: use string/fmt instead of printf for ShowInfo(F)
2023-04-24 17:51:54 +02:00
PeterN
e97bf271dc
Codechange: Make SpriteType, CargoSortType, SourceType and ScriptType enum classes. ( #10663 )
...
This avoids a (soft) namespace conflict between the four ST_* enums.
2023-04-16 20:00:55 +01:00