Title: [259147] trunk/Source/WebCore
Revision
259147
Author
[email protected]
Date
2020-03-27 16:51:09 -0700 (Fri, 27 Mar 2020)

Log Message

Change SVGRenderingContext::renderSubtreeToImageBuffer() to SVGRenderingContext::renderSubtreeToContext()
https://bugs.webkit.org/show_bug.cgi?id=209679

Reviewed by Said Abou-Hallawa.

renderSubtreeToImageBuffer() just gets the context from the buffer, so change the name and signature
and just pass a GraphicsContext.

* rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
* rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::createTileImage const):
* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::renderSubtreeToContext):
(WebCore::SVGRenderingContext::renderSubtreeToImageBuffer): Deleted.
* rendering/svg/SVGRenderingContext.h:
* svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::platformApplySoftware):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (259146 => 259147)


--- trunk/Source/WebCore/ChangeLog	2020-03-27 23:44:46 UTC (rev 259146)
+++ trunk/Source/WebCore/ChangeLog	2020-03-27 23:51:09 UTC (rev 259147)
@@ -1,3 +1,26 @@
+2020-03-27  Simon Fraser  <[email protected]>
+
+        Change SVGRenderingContext::renderSubtreeToImageBuffer() to SVGRenderingContext::renderSubtreeToContext()
+        https://bugs.webkit.org/show_bug.cgi?id=209679
+
+        Reviewed by Said Abou-Hallawa.
+
+        renderSubtreeToImageBuffer() just gets the context from the buffer, so change the name and signature
+        and just pass a GraphicsContext.
+
+        * rendering/svg/RenderSVGResourceClipper.cpp:
+        (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
+        * rendering/svg/RenderSVGResourceMasker.cpp:
+        (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
+        * rendering/svg/RenderSVGResourcePattern.cpp:
+        (WebCore::RenderSVGResourcePattern::createTileImage const):
+        * rendering/svg/SVGRenderingContext.cpp:
+        (WebCore::SVGRenderingContext::renderSubtreeToContext):
+        (WebCore::SVGRenderingContext::renderSubtreeToImageBuffer): Deleted.
+        * rendering/svg/SVGRenderingContext.h:
+        * svg/graphics/filters/SVGFEImage.cpp:
+        (WebCore::FEImage::platformApplySoftware):
+
 2020-03-26  Yusuke Suzuki  <[email protected]>
 
         Use EnsureStillAliveScope to keep JSValues alive

Modified: trunk/Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp (259146 => 259147)


--- trunk/Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp	2020-03-27 23:44:46 UTC (rev 259146)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp	2020-03-27 23:51:09 UTC (rev 259147)
@@ -231,9 +231,9 @@
         maskContext.setFillRule(newClipRule);
 
         // In the case of a <use> element, we obtained its renderere above, to retrieve its clipRule.
-        // We have to pass the <use> renderer itself to renderSubtreeToImageBuffer() to apply it's x/y/transform/etc. values when rendering.
+        // We have to pass the <use> renderer itself to renderSubtreeToContext() to apply it's x/y/transform/etc. values when rendering.
         // So if isUseElement is true, refetch the childNode->renderer(), as renderer got overridden above.
-        SVGRenderingContext::renderSubtreeToImageBuffer(&maskImageBuffer, isUseElement ? *child.renderer() : *renderer, maskContentTransformation);
+        SVGRenderingContext::renderSubtreeToContext(maskContext, isUseElement ? *child.renderer() : *renderer, maskContentTransformation);
     }
 
     view().frameView().setPaintBehavior(oldBehavior);

Modified: trunk/Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp (259146 => 259147)


--- trunk/Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp	2020-03-27 23:44:46 UTC (rev 259146)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp	2020-03-27 23:51:09 UTC (rev 259147)
@@ -109,7 +109,7 @@
         const RenderStyle& style = renderer->style();
         if (style.display() == DisplayType::None || style.visibility() != Visibility::Visible)
             continue;
-        SVGRenderingContext::renderSubtreeToImageBuffer(maskerData->maskImage.get(), *renderer, maskContentTransformation);
+        SVGRenderingContext::renderSubtreeToContext(maskImageContext, *renderer, maskContentTransformation);
     }
 
 #if !USE(CG)

Modified: trunk/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp (259146 => 259147)


--- trunk/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp	2020-03-27 23:44:46 UTC (rev 259146)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp	2020-03-27 23:51:09 UTC (rev 259147)
@@ -278,7 +278,7 @@
             continue;
         if (child.renderer()->needsLayout())
             return nullptr;
-        SVGRenderingContext::renderSubtreeToImageBuffer(tileImage.get(), *child.renderer(), contentTransformation);
+        SVGRenderingContext::renderSubtreeToContext(tileImageContext, *child.renderer(), contentTransformation);
     }
 
     return tileImage;

Modified: trunk/Source/WebCore/rendering/svg/SVGRenderingContext.cpp (259146 => 259147)


--- trunk/Source/WebCore/rendering/svg/SVGRenderingContext.cpp	2020-03-27 23:44:46 UTC (rev 259146)
+++ trunk/Source/WebCore/rendering/svg/SVGRenderingContext.cpp	2020-03-27 23:51:09 UTC (rev 259147)
@@ -290,13 +290,11 @@
     return imageBuffer;
 }
 
-void SVGRenderingContext::renderSubtreeToImageBuffer(ImageBuffer* image, RenderElement& item, const AffineTransform& subtreeContentTransformation)
+void SVGRenderingContext::renderSubtreeToContext(GraphicsContext& context, RenderElement& item, const AffineTransform& subtreeContentTransformation)
 {
-    ASSERT(image);
-
     // Rendering into a buffer implies we're being used for masking, clipping, patterns or filters. In each of these
     // cases we don't want to paint the selection.
-    PaintInfo info(image->context(), LayoutRect::infiniteRect(), PaintPhase::Foreground, PaintBehavior::SkipSelectionHighlight);
+    PaintInfo info(context, LayoutRect::infiniteRect(), PaintPhase::Foreground, PaintBehavior::SkipSelectionHighlight);
 
     AffineTransform& contentTransformation = currentContentTransformation();
     AffineTransform savedContentTransformation = contentTransformation;

Modified: trunk/Source/WebCore/rendering/svg/SVGRenderingContext.h (259146 => 259147)


--- trunk/Source/WebCore/rendering/svg/SVGRenderingContext.h	2020-03-27 23:44:46 UTC (rev 259146)
+++ trunk/Source/WebCore/rendering/svg/SVGRenderingContext.h	2020-03-27 23:51:09 UTC (rev 259147)
@@ -63,7 +63,7 @@
     static std::unique_ptr<ImageBuffer> createImageBuffer(const FloatRect& targetRect, const AffineTransform& absoluteTransform, ColorSpace, RenderingMode, const GraphicsContext* = nullptr);
     static std::unique_ptr<ImageBuffer> createImageBuffer(const FloatRect& targetRect, const FloatRect& clampedRect, ColorSpace, RenderingMode, const GraphicsContext* = nullptr);
 
-    static void renderSubtreeToImageBuffer(ImageBuffer*, RenderElement&, const AffineTransform&);
+    static void renderSubtreeToContext(GraphicsContext&, RenderElement&, const AffineTransform&);
     static void clipToImageBuffer(GraphicsContext&, const AffineTransform& absoluteTransform, const FloatRect& targetRect, std::unique_ptr<ImageBuffer>&, bool safeToClear);
 
     static float calculateScreenFontSizeScalingFactor(const RenderObject&);

Modified: trunk/Source/WebCore/svg/graphics/filters/SVGFEImage.cpp (259146 => 259147)


--- trunk/Source/WebCore/svg/graphics/filters/SVGFEImage.cpp	2020-03-27 23:44:46 UTC (rev 259146)
+++ trunk/Source/WebCore/svg/graphics/filters/SVGFEImage.cpp	2020-03-27 23:51:09 UTC (rev 259147)
@@ -113,9 +113,11 @@
     IntPoint paintLocation = absolutePaintRect().location();
     destRect.move(-paintLocation.x(), -paintLocation.y());
 
+    auto& context = resultImage->context();
+
     if (renderer) {
         const AffineTransform& absoluteTransform = filter().absoluteTransform();
-        resultImage->context().concatCTM(absoluteTransform);
+        context.concatCTM(absoluteTransform);
 
         auto contextNode = makeRefPtr(downcast<SVGElement>(renderer->element()));
         if (contextNode->hasRelativeLengths()) {
@@ -125,15 +127,15 @@
             // If we're referencing an element with percentage units, eg. <rect with="30%"> those values were resolved against the viewport.
             // Build up a transformation that maps from the viewport space to the filter primitive subregion.
             if (lengthContext.determineViewport(viewportSize))
-                resultImage->context().concatCTM(makeMapBetweenRects(FloatRect(FloatPoint(), viewportSize), destRect));
+                context.concatCTM(makeMapBetweenRects(FloatRect(FloatPoint(), viewportSize), destRect));
         }
 
         AffineTransform contentTransformation;
-        SVGRenderingContext::renderSubtreeToImageBuffer(resultImage, *renderer, contentTransformation);
+        SVGRenderingContext::renderSubtreeToContext(context, *renderer, contentTransformation);
         return;
     }
 
-    resultImage->context().drawImage(*m_image, destRect, srcRect);
+    context.drawImage(*m_image, destRect, srcRect);
 }
 
 TextStream& FEImage::externalRepresentation(TextStream& ts, RepresentationType representation) const
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to