Title: [255299] branches/safari-610.1.1-branch/Source/WebCore
Revision
255299
Author
[email protected]
Date
2020-01-28 13:49:46 -0800 (Tue, 28 Jan 2020)

Log Message

Cherry-pick r255068. rdar://problem/58809696

    [LFC][Integration] LineLayout::paint should take advantage of the glyph display list cache
    https://bugs.webkit.org/show_bug.cgi?id=206727
    <rdar://problem/58809696>

    Reviewed by Antti Koivisto.

    * layout/displaytree/DisplayInlineContent.cpp:
    (WebCore::Display::InlineContent::~InlineContent):
    * layout/displaytree/DisplayInlineContent.h:
    * layout/integration/LayoutIntegrationLineLayout.cpp:
    (WebCore::LayoutIntegration::LineLayout::paint):

    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255068 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Modified Paths

Diff

Modified: branches/safari-610.1.1-branch/Source/WebCore/ChangeLog (255298 => 255299)


--- branches/safari-610.1.1-branch/Source/WebCore/ChangeLog	2020-01-28 21:49:43 UTC (rev 255298)
+++ branches/safari-610.1.1-branch/Source/WebCore/ChangeLog	2020-01-28 21:49:46 UTC (rev 255299)
@@ -1,5 +1,38 @@
 2020-01-28  Russell Epstein  <[email protected]>
 
+        Cherry-pick r255068. rdar://problem/58809696
+
+    [LFC][Integration] LineLayout::paint should take advantage of the glyph display list cache
+    https://bugs.webkit.org/show_bug.cgi?id=206727
+    <rdar://problem/58809696>
+    
+    Reviewed by Antti Koivisto.
+    
+    * layout/displaytree/DisplayInlineContent.cpp:
+    (WebCore::Display::InlineContent::~InlineContent):
+    * layout/displaytree/DisplayInlineContent.h:
+    * layout/integration/LayoutIntegrationLineLayout.cpp:
+    (WebCore::LayoutIntegration::LineLayout::paint):
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255068 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2020-01-24  Zalan Bujtas  <[email protected]>
+
+            [LFC][Integration] LineLayout::paint should take advantage of the glyph display list cache
+            https://bugs.webkit.org/show_bug.cgi?id=206727
+            <rdar://problem/58809696>
+
+            Reviewed by Antti Koivisto.
+
+            * layout/displaytree/DisplayInlineContent.cpp:
+            (WebCore::Display::InlineContent::~InlineContent):
+            * layout/displaytree/DisplayInlineContent.h:
+            * layout/integration/LayoutIntegrationLineLayout.cpp:
+            (WebCore::LayoutIntegration::LineLayout::paint):
+
+2020-01-28  Russell Epstein  <[email protected]>
+
         Cherry-pick r254951. rdar://problem/58713125
 
     Make a Ref to WindowEventLoop when the timer to run tasks fires

Modified: branches/safari-610.1.1-branch/Source/WebCore/layout/displaytree/DisplayInlineContent.cpp (255298 => 255299)


--- branches/safari-610.1.1-branch/Source/WebCore/layout/displaytree/DisplayInlineContent.cpp	2020-01-28 21:49:43 UTC (rev 255298)
+++ branches/safari-610.1.1-branch/Source/WebCore/layout/displaytree/DisplayInlineContent.cpp	2020-01-28 21:49:46 UTC (rev 255299)
@@ -28,6 +28,8 @@
 #if ENABLE(LAYOUT_FORMATTING_CONTEXT)
 
 #include "DisplayInlineContent.h"
+#include "RuntimeEnabledFeatures.h"
+#include "TextPainter.h"
 
 namespace WebCore {
 namespace Display {
@@ -40,7 +42,15 @@
     return { &runs.first(), &runs.last() + 1 };
 }
 
+InlineContent::~InlineContent()
+{
+    if (RuntimeEnabledFeatures::sharedFeatures().layoutFormattingContextIntegrationEnabled()) {
+        for (auto& run : runs)
+            TextPainter::removeGlyphDisplayList(run);
+    }
 }
+
 }
+}
 
 #endif

Modified: branches/safari-610.1.1-branch/Source/WebCore/layout/displaytree/DisplayInlineContent.h (255298 => 255299)


--- branches/safari-610.1.1-branch/Source/WebCore/layout/displaytree/DisplayInlineContent.h	2020-01-28 21:49:43 UTC (rev 255298)
+++ branches/safari-610.1.1-branch/Source/WebCore/layout/displaytree/DisplayInlineContent.h	2020-01-28 21:49:46 UTC (rev 255299)
@@ -36,6 +36,8 @@
 namespace Display {
 
 struct InlineContent : public RefCounted<InlineContent> {
+    ~InlineContent();
+
     using Runs = Vector<Run, 10>;
     using LineBoxes = Vector<LineBox, 5>;
 

Modified: branches/safari-610.1.1-branch/Source/WebCore/layout/integration/LayoutIntegrationLineLayout.cpp (255298 => 255299)


--- branches/safari-610.1.1-branch/Source/WebCore/layout/integration/LayoutIntegrationLineLayout.cpp	2020-01-28 21:49:43 UTC (rev 255298)
+++ branches/safari-610.1.1-branch/Source/WebCore/layout/integration/LayoutIntegrationLineLayout.cpp	2020-01-28 21:49:46 UTC (rev 255299)
@@ -273,6 +273,7 @@
         if (auto* debugShadow = debugTextShadow())
             textPainter.setShadow(debugShadow);
 
+        textPainter.setGlyphDisplayListIfNeeded(run, paintInfo, style.fontCascade(), paintInfo.context(), textRun);
         textPainter.paint(textRun, rect, textOrigin);
 
         if (!style.textDecorationsInEffect().isEmpty()) {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to