graphics: improve native system font fallback

Initialize SystemFontResolver when enabled and make its lifecycle and font-list
population thread-safe.

Use native codepoint fallback matching through Fontconfig on Linux, BSD, and
Haiku, DirectWrite on Windows, and Core Text on macOS and iOS. Preserve the
cached FreeType scan as a fallback when native matching is unavailable.

Enable system fonts by default for UIApplication and warm the font database in
the background. Allow applications to override the policy and disable the
automatic default in the unit-test runner.

Fix glyph fallback checks to respect the resolver's enabled state and add
coverage for concurrent warm-up and shaped symbol fallback.

Update efsw.
This commit is contained in:
Martín Lucas Golini
2026-08-23 16:59:23 -03:00
parent 89487fec8b
commit 301b7458d2
15 changed files with 756 additions and 1461 deletions
+2
View File
@@ -2,10 +2,12 @@
#include <eepp/system/filesystem.hpp>
#include <eepp/system/sys.hpp>
#include <eepp/ui/uiapplication.hpp>
UTEST_STATE();
EE_MAIN_FUNC int main( int argc, char* argv[] ) {
EE::System::FileSystem::changeWorkingDirectory( EE::System::Sys::getProcessPath() );
EE::UI::UIApplication::setSystemFontsEnabledByDefault( false );
return utest_main( argc, argv );
}