From 1e2c53d9739f13831f45f20b1f17b083580bf077 Mon Sep 17 00:00:00 2001 From: Bart Louwers Date: Thu, 12 Feb 2026 22:16:21 +0100 Subject: [PATCH] set font for local glyph rasterizer GLFW app Apple platforms (#4098) --- platform/glfw/CMakeLists.txt | 7 +++++++ platform/glfw/glfw_apple_init.mm | 11 +++++++++++ 2 files changed, 18 insertions(+) create mode 100644 platform/glfw/glfw_apple_init.mm diff --git a/platform/glfw/CMakeLists.txt b/platform/glfw/CMakeLists.txt index 24cc00654..0b041888c 100644 --- a/platform/glfw/CMakeLists.txt +++ b/platform/glfw/CMakeLists.txt @@ -31,6 +31,13 @@ set_property( PROPERTY COMPILE_DEFINITIONS MLN_ASSETS_PATH=\"${PROJECT_SOURCE_DIR}/platform/glfw/assets/\" ) +if(APPLE) + target_sources( + mbgl-glfw + PRIVATE ${PROJECT_SOURCE_DIR}/platform/glfw/glfw_apple_init.mm + ) +endif() + if(MLN_WITH_OPENGL) find_package(OpenGL REQUIRED) target_sources( diff --git a/platform/glfw/glfw_apple_init.mm b/platform/glfw/glfw_apple_init.mm new file mode 100644 index 000000000..92bd639db --- /dev/null +++ b/platform/glfw/glfw_apple_init.mm @@ -0,0 +1,11 @@ +#import + +// Called early in GLFW initialization so that the local glyph rasterizer +// can find a suitable CJK font via NSUserDefaults. +__attribute__((constructor)) +static void setDefaultIdeographicFont() { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + if (![defaults objectForKey:@"MLNIdeographicFontFamilyName"]) { + [defaults setObject:@[@"PingFang TC"] forKey:@"MLNIdeographicFontFamilyName"]; + } +}