Настройте сглаживание в macOS 10.14, программно
Я ищу способ отрегулировать вес обводки текста в программно нарисованном тексте MacOS Mojave с настройкой по умолчанию без субпиксельного сглаживания.
Раньше вы могли настраивать алгоритм сглаживания субпикселей с помощью частного API: CGContextSetFontSmoothingStyle
, Когда субпиксельное сглаживание отключено, этот API ничего не делает. В то время как недокументированный, он использовался webkit в общедоступном коде: https://opensource.apple.com/source/WebCore/WebCore-351.9/platform/graphics/mac/FontMac.mm.auto.html
Я знаю, что это возможно, потому что System Prefs>General имеет "Использовать сглаживание шрифтов, когда доступно", которое имеет эффект, когда субпиксельное сглаживание отключено. Но, похоже, это не влияет на текст, который я отображаю CTFontDrawGlyphs
или же CGContextShowGlyphsAtPositions
,
Из разборки системных префов похоже меняется AppleFontSmoothing
пользователь по умолчанию ( https://imgur.com/a/WrMKRWa). Изменение этого пользовательского значения по умолчанию в моем приложении не оказывает никакого влияния.