Title: [279713] trunk/Source/WebCore
Revision
279713
Author
[email protected]
Date
2021-07-08 00:23:20 -0700 (Thu, 08 Jul 2021)

Log Message

Merge Cairo::save and Cairo::restore into GraphicsContextCairo's methods
https://bugs.webkit.org/show_bug.cgi?id=227784

Reviewed by Žan Doberšek.

Cairo::save and Cairo::restore should be GraphicsContextCairo's
methods.

* platform/graphics/cairo/CairoOperations.cpp:
(WebCore::Cairo::fillShadowBuffer):
(WebCore::Cairo::save): Deleted.
(WebCore::Cairo::restore): Deleted.
* platform/graphics/cairo/CairoOperations.h:
* platform/graphics/cairo/GradientCairo.cpp:
(WebCore::Gradient::fill):
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContextCairo::save):
(WebCore::GraphicsContextCairo::restore):
(WebCore::GraphicsContextCairo::fillRect):
(WebCore::GraphicsContextCairo::saveInternal): Deleted.
(WebCore::GraphicsContextCairo::restoreInternal): Deleted.
* platform/graphics/cairo/GraphicsContextCairo.h:
* platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:
(Nicosia::CairoOperationRecorder::fillRect):
(Nicosia::CairoOperationRecorder::save):
(Nicosia::CairoOperationRecorder::restore):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (279712 => 279713)


--- trunk/Source/WebCore/ChangeLog	2021-07-08 06:53:01 UTC (rev 279712)
+++ trunk/Source/WebCore/ChangeLog	2021-07-08 07:23:20 UTC (rev 279713)
@@ -1,3 +1,32 @@
+2021-07-08  Fujii Hironori  <[email protected]>
+
+        Merge Cairo::save and Cairo::restore into GraphicsContextCairo's methods
+        https://bugs.webkit.org/show_bug.cgi?id=227784
+
+        Reviewed by Žan Doberšek.
+
+        Cairo::save and Cairo::restore should be GraphicsContextCairo's
+        methods.
+
+        * platform/graphics/cairo/CairoOperations.cpp:
+        (WebCore::Cairo::fillShadowBuffer):
+        (WebCore::Cairo::save): Deleted.
+        (WebCore::Cairo::restore): Deleted.
+        * platform/graphics/cairo/CairoOperations.h:
+        * platform/graphics/cairo/GradientCairo.cpp:
+        (WebCore::Gradient::fill):
+        * platform/graphics/cairo/GraphicsContextCairo.cpp:
+        (WebCore::GraphicsContextCairo::save):
+        (WebCore::GraphicsContextCairo::restore):
+        (WebCore::GraphicsContextCairo::fillRect):
+        (WebCore::GraphicsContextCairo::saveInternal): Deleted.
+        (WebCore::GraphicsContextCairo::restoreInternal): Deleted.
+        * platform/graphics/cairo/GraphicsContextCairo.h:
+        * platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:
+        (Nicosia::CairoOperationRecorder::fillRect):
+        (Nicosia::CairoOperationRecorder::save):
+        (Nicosia::CairoOperationRecorder::restore):
+
 2021-07-07  Cameron McCormack  <[email protected]>
 
         Add logging for GraphicsLayerCA::m_uncommittedChanges

Modified: trunk/Source/WebCore/platform/graphics/cairo/CairoOperations.cpp (279712 => 279713)


--- trunk/Source/WebCore/platform/graphics/cairo/CairoOperations.cpp	2021-07-08 06:53:01 UTC (rev 279712)
+++ trunk/Source/WebCore/platform/graphics/cairo/CairoOperations.cpp	2021-07-08 07:23:20 UTC (rev 279713)
@@ -190,7 +190,7 @@
 
 static void fillShadowBuffer(GraphicsContextCairo& platformContext, ImageBuffer& layerImage, const FloatPoint& layerOrigin, const FloatSize& layerSize, const ShadowState& shadowState)
 {
-    save(platformContext);
+    platformContext.save();
 
     if (auto nativeImage = layerImage.copyNativeImage(DontCopyBackingStore))
         clipToImageBuffer(platformContext, nativeImage->platformImage().get(), FloatRect(layerOrigin, expandedIntSize(layerSize)));
@@ -200,7 +200,7 @@
     fillSource.color = shadowState.color;
     fillRect(platformContext, FloatRect(layerOrigin, expandedIntSize(layerSize)), fillSource, ShadowState());
 
-    restore(platformContext);
+    platformContext.restore();
 }
 
 static inline void drawPathShadow(GraphicsContextCairo& platformContext, const FillSource& fillSource, const StrokeSource& strokeSource, const ShadowState& shadowState, PathDrawingStyle drawingStyle)
@@ -1178,22 +1178,6 @@
     drawFocusRing(platformContext, path, width, color);
 }
 
-void save(GraphicsContextCairo& platformContext)
-{
-    platformContext.saveInternal();
-
-    if (auto* graphicsContextPrivate = platformContext.graphicsContextPrivate())
-        graphicsContextPrivate->save();
-}
-
-void restore(GraphicsContextCairo& platformContext)
-{
-    platformContext.restoreInternal();
-
-    if (auto* graphicsContextPrivate = platformContext.graphicsContextPrivate())
-        graphicsContextPrivate->restore();
-}
-
 void translate(GraphicsContextCairo& platformContext, float x, float y)
 {
     cairo_translate(platformContext.cr(), x, y);

Modified: trunk/Source/WebCore/platform/graphics/cairo/CairoOperations.h (279712 => 279713)


--- trunk/Source/WebCore/platform/graphics/cairo/CairoOperations.h	2021-07-08 06:53:01 UTC (rev 279712)
+++ trunk/Source/WebCore/platform/graphics/cairo/CairoOperations.h	2021-07-08 07:23:20 UTC (rev 279713)
@@ -155,9 +155,6 @@
 void drawFocusRing(GraphicsContextCairo&, const Path&, float, const Color&);
 void drawFocusRing(GraphicsContextCairo&, const Vector<FloatRect>&, float, const Color&);
 
-void save(GraphicsContextCairo&);
-void restore(GraphicsContextCairo&);
-
 void translate(GraphicsContextCairo&, float, float);
 void rotate(GraphicsContextCairo&, float);
 void scale(GraphicsContextCairo&, const FloatSize&);

Modified: trunk/Source/WebCore/platform/graphics/cairo/GradientCairo.cpp (279712 => 279713)


--- trunk/Source/WebCore/platform/graphics/cairo/GradientCairo.cpp	2021-07-08 06:53:01 UTC (rev 279712)
+++ trunk/Source/WebCore/platform/graphics/cairo/GradientCairo.cpp	2021-07-08 07:23:20 UTC (rev 279713)
@@ -246,9 +246,9 @@
     ASSERT(context.hasPlatformContext());
     auto& platformContext = *context.platformContext();
 
-    Cairo::save(platformContext);
+    platformContext.save();
     Cairo::fillRect(platformContext, rect, pattern.get());
-    Cairo::restore(platformContext);
+    platformContext.restore();
 }
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp (279712 => 279713)


--- trunk/Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp	2021-07-08 06:53:01 UTC (rev 279712)
+++ trunk/Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp	2021-07-08 07:23:20 UTC (rev 279713)
@@ -102,7 +102,13 @@
 void GraphicsContextCairo::save()
 {
     GraphicsContext::save();
-    Cairo::save(*this);
+
+    m_cairoStateStack.append(CairoState());
+    m_cairoState = &m_cairoStateStack.last();
+
+    cairo_save(m_cr.get());
+
+    m_private->save();
 }
 
 void GraphicsContextCairo::restore()
@@ -111,7 +117,27 @@
         return;
 
     GraphicsContext::restore();
-    Cairo::restore(*this);
+
+    if (m_cairoStateStack.isEmpty())
+        return;
+
+    if (m_cairoState->m_mask.pattern) {
+        cairo_pop_group_to_source(m_cr.get());
+
+        cairo_matrix_t matrix;
+        cairo_get_matrix(m_cr.get(), &matrix);
+        cairo_set_matrix(m_cr.get(), &m_cairoState->m_mask.matrix);
+        cairo_mask(m_cr.get(), m_cairoState->m_mask.pattern.get());
+        cairo_set_matrix(m_cr.get(), &matrix);
+    }
+
+    m_cairoStateStack.removeLast();
+    ASSERT(!m_cairoStateStack.isEmpty());
+    m_cairoState = &m_cairoStateStack.last();
+
+    cairo_restore(m_cr.get());
+
+    m_private->restore();
 }
 
 // Draws a filled rectangle with a stroked border.
@@ -181,9 +207,9 @@
     if (!pattern)
         return;
 
-    Cairo::save(*this);
+    save();
     Cairo::fillRect(*this, rect, pattern.get());
-    Cairo::restore(*this);
+    restore();
 }
 
 void GraphicsContextCairo::fillRect(const FloatRect& rect, const Color& color, CompositeOperator compositeOperator, BlendMode blendMode)
@@ -428,36 +454,6 @@
     return m_layers;
 }
 
-void GraphicsContextCairo::saveInternal()
-{
-    m_cairoStateStack.append(CairoState());
-    m_cairoState = &m_cairoStateStack.last();
-
-    cairo_save(m_cr.get());
-}
-
-void GraphicsContextCairo::restoreInternal()
-{
-    if (m_cairoStateStack.isEmpty())
-        return;
-
-    if (m_cairoState->m_mask.pattern) {
-        cairo_pop_group_to_source(m_cr.get());
-
-        cairo_matrix_t matrix;
-        cairo_get_matrix(m_cr.get(), &matrix);
-        cairo_set_matrix(m_cr.get(), &m_cairoState->m_mask.matrix);
-        cairo_mask(m_cr.get(), m_cairoState->m_mask.pattern.get());
-        cairo_set_matrix(m_cr.get(), &matrix);
-    }
-
-    m_cairoStateStack.removeLast();
-    ASSERT(!m_cairoStateStack.isEmpty());
-    m_cairoState = &m_cairoStateStack.last();
-
-    cairo_restore(m_cr.get());
-}
-
 void GraphicsContextCairo::pushImageMask(cairo_surface_t* surface, const FloatRect& rect)
 {
     // We must call savePlatformState at least once before we can use image masking,

Modified: trunk/Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.h (279712 => 279713)


--- trunk/Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.h	2021-07-08 06:53:01 UTC (rev 279712)
+++ trunk/Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.h	2021-07-08 07:23:20 UTC (rev 279713)
@@ -114,8 +114,6 @@
 
     cairo_t* cr() const;
     Vector<float>& layers();
-    void saveInternal();
-    void restoreInternal();
     void pushImageMask(cairo_surface_t*, const FloatRect&);
     GraphicsContextPlatformPrivate* graphicsContextPrivate();
 

Modified: trunk/Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp (279712 => 279713)


--- trunk/Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp	2021-07-08 06:53:01 UTC (rev 279712)
+++ trunk/Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp	2021-07-08 07:23:20 UTC (rev 279713)
@@ -280,9 +280,9 @@
         void execute(PaintingOperationReplay& replayer) override
         {
             auto& platformContext = contextForReplay(replayer);
-            Cairo::save(platformContext);
+            platformContext.save();
             Cairo::fillRect(platformContext, arg<0>(), arg<1>().get());
-            Cairo::restore(platformContext);
+            platformContext.restore();
         }
 
         void dump(TextStream& ts) override
@@ -744,7 +744,7 @@
 
         void execute(PaintingOperationReplay& replayer) override
         {
-            Cairo::save(contextForReplay(replayer));
+            contextForReplay(replayer).save();
         }
 
         void dump(TextStream& ts) override
@@ -767,7 +767,7 @@
 
         void execute(PaintingOperationReplay& replayer) override
         {
-            Cairo::restore(contextForReplay(replayer));
+            contextForReplay(replayer).restore();
         }
 
         void dump(TextStream& ts) override
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to