Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3563129ef78f532b8395346823cd2d4f186fd499
      
https://github.com/WebKit/WebKit/commit/3563129ef78f532b8395346823cd2d4f186fd499
  Author: Myles C. Maxfield <[email protected]>
  Date:   2023-02-13 (Mon, 13 Feb 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp
    M Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.h
    M Source/WebCore/platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp
    M Source/WebCore/platform/graphics/mac/FontCustomPlatformDataMac.cpp

  Log Message:
  -----------
  [WebGPU] Hook up UnrealizedCoreTextFont to callers
https://bugs.webkit.org/show_bug.cgi?id=252221

Reviewed by Cameron McCormack.

The solution to https://bugs.webkit.org/show_bug.cgi?id=247987 requires having 
explicit locations where we transform
a CTFontDescriptor into a CTFont. UnrealizedCoreTextFont is the critical object 
in a design which enforces this: It
holds the original CTFontDescriptor/CTFont which Core Text gave us originally, 
plus a CFMutableDictionary of
modifications to be made to it. Updating the modifications never hits Core 
Text, and are as such very lightweight.
Once we're done setting the modifications, there's a "commit" step where we 
finally make the final CTFont. This
means that we avoid ping-ponging between CTFontDescriptors and CTFonts 
unnecessarily.

Eventually, preparePlatformFont() will be integrated into this object, but 
that's too big for a single patch. This
patch just hooks up callers of preparePlatformFont() to use this object, which 
will temporarily be resolved to a
CTFont just before calling preparePlatformFont. The next few patches will be 
updating preparePlatformFont() to be
able to represent it as a pure modification to the UnrealizedCoreTextFont.

* Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::preparePlatformFont):
(WebCore::fontDescriptorWithFamilySpecialCase):
(WebCore::fontWithFamily):
(WebCore::FontCache::systemFallbackForCharacters):
* Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.h:
* Source/WebCore/platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp:
(WebCore::FontFamilySpecificationCoreText::fontRanges const):
* Source/WebCore/platform/graphics/mac/FontCustomPlatformDataMac.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData):

Canonical link: https://commits.webkit.org/260241@main


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to