Title: [269837] trunk
Revision
269837
Author
[email protected]
Date
2020-11-16 00:19:39 -0800 (Mon, 16 Nov 2020)

Log Message

[TextureMapper] The edges of blur backdrop-filter look gradient tranparent
https://bugs.webkit.org/show_bug.cgi?id=218645
<rdar://problem/71356999>

Reviewed by Carlos Garcia Campos.

Source/WebCore:

The blur backdrop-filter needs a larger input image than an output
image. However, it's not easy to get a larger input image in the
edges of the windows. Cocoa port is doing extrapolation by
duplicating edges pixels of the input image which has the same
size with the output image (Bug 146215). Take the same approach.

* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::computeOverlapRegions): Don't
inflate the local bounding rect by the outsets for backdrop
layers.
* platform/graphics/texmap/TextureMapperShaderProgram.cpp:
(sampleColorAtRadius): Don't clamp 'coord'.

LayoutTests:

* platform/glib/css3/filters/backdrop/blur-input-bounds-expected.png: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (269836 => 269837)


--- trunk/LayoutTests/ChangeLog	2020-11-16 04:53:16 UTC (rev 269836)
+++ trunk/LayoutTests/ChangeLog	2020-11-16 08:19:39 UTC (rev 269837)
@@ -1,3 +1,13 @@
+2020-11-16  Fujii Hironori  <[email protected]>
+
+        [TextureMapper] The edges of blur backdrop-filter look gradient tranparent
+        https://bugs.webkit.org/show_bug.cgi?id=218645
+        <rdar://problem/71356999>
+
+        Reviewed by Carlos Garcia Campos.
+
+        * platform/glib/css3/filters/backdrop/blur-input-bounds-expected.png: Added.
+
 2020-11-15  Sam Weinig  <[email protected]>
 
         Remove and re-add fast/forms/selection-direction.html without CRs

Added: trunk/LayoutTests/platform/glib/css3/filters/backdrop/blur-input-bounds-expected.png


(Binary files differ)
Index: trunk/LayoutTests/platform/glib/css3/filters/backdrop/blur-input-bounds-expected.png =================================================================== --- trunk/LayoutTests/platform/glib/css3/filters/backdrop/blur-input-bounds-expected.png 2020-11-16 04:53:16 UTC (rev 269836) +++ trunk/LayoutTests/platform/glib/css3/filters/backdrop/blur-input-bounds-expected.png 2020-11-16 08:19:39 UTC (rev 269837) Property changes on: trunk/LayoutTests/platform/glib/css3/filters/backdrop/blur-input-bounds-expected.png ___________________________________________________________________

Added: svn:mime-type

+image/png \ No newline at end of property

Modified: trunk/Source/WebCore/ChangeLog (269836 => 269837)


--- trunk/Source/WebCore/ChangeLog	2020-11-16 04:53:16 UTC (rev 269836)
+++ trunk/Source/WebCore/ChangeLog	2020-11-16 08:19:39 UTC (rev 269837)
@@ -1,3 +1,24 @@
+2020-11-16  Fujii Hironori  <[email protected]>
+
+        [TextureMapper] The edges of blur backdrop-filter look gradient tranparent
+        https://bugs.webkit.org/show_bug.cgi?id=218645
+        <rdar://problem/71356999>
+
+        Reviewed by Carlos Garcia Campos.
+
+        The blur backdrop-filter needs a larger input image than an output
+        image. However, it's not easy to get a larger input image in the
+        edges of the windows. Cocoa port is doing extrapolation by
+        duplicating edges pixels of the input image which has the same
+        size with the output image (Bug 146215). Take the same approach.
+
+        * platform/graphics/texmap/TextureMapperLayer.cpp:
+        (WebCore::TextureMapperLayer::computeOverlapRegions): Don't
+        inflate the local bounding rect by the outsets for backdrop
+        layers.
+        * platform/graphics/texmap/TextureMapperShaderProgram.cpp:
+        (sampleColorAtRadius): Don't clamp 'coord'.
+
 2020-11-15  Zalan Bujtas  <[email protected]>
 
         [LFC][Integration] Disable modern line layout for fieldset children.

Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp (269836 => 269837)


--- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp	2020-11-16 04:53:16 UTC (rev 269836)
+++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp	2020-11-16 08:19:39 UTC (rev 269837)
@@ -334,7 +334,7 @@
     else if (m_contentsLayer || m_state.solidColor.isVisible())
         localBoundingRect = m_state.contentsRect;
 
-    if (m_currentFilters.hasOutsets()) {
+    if (m_currentFilters.hasOutsets() && !m_state.backdropLayer) {
         auto outsets = m_currentFilters.outsets();
         localBoundingRect.move(-outsets.left(), -outsets.top());
         localBoundingRect.expand(outsets.left() + outsets.right(), outsets.top() + outsets.bottom());

Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp (269836 => 269837)


--- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp	2020-11-16 04:53:16 UTC (rev 269836)
+++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp	2020-11-16 08:19:39 UTC (rev 269837)
@@ -362,7 +362,7 @@
         vec4 sampleColorAtRadius(float radius, vec2 texCoord)
         {
             vec2 coord = texCoord + radius * u_blurRadius;
-            return SamplerFunction(s_sampler, coord) * float(coord.x > 0. && coord.y > 0. && coord.x < 1. && coord.y < 1.);
+            return SamplerFunction(s_sampler, coord);
         }
 
         float sampleAlphaAtRadius(float radius, vec2 texCoord)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to