Title: [270096] releases/WebKitGTK/webkit-2.30
- Revision
- 270096
- Author
- carlo...@webkit.org
- Date
- 2020-11-20 02:39:57 -0800 (Fri, 20 Nov 2020)
Log Message
Merge r269588 - [TextureMapper] The top and left sides of drop-shadow are clipped
https://bugs.webkit.org/show_bug.cgi?id=218647
Reviewed by Don Olmstead.
Source/WebCore:
TextureMapperLayer::computeOverlapRegions incorrectly calculated
the local bounding rect for top and left of outsets.
The drop-shadow was incorrectly blended with the content.
Test: compositing/filters/drop-shadow.html
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::computeOverlapRegions): Stopped
using std::max for the left and top of outsets. Stopped taking the
unite with unfilteredTargetRect because outsets are always
positive.
* platform/graphics/texmap/TextureMapperShaderProgram.cpp:
Fixed sourceOver().
LayoutTests:
* compositing/filters/drop-shadow-expected.html: Added.
* compositing/filters/drop-shadow.html: Added.
Modified Paths
Added Paths
Diff
Modified: releases/WebKitGTK/webkit-2.30/LayoutTests/ChangeLog (270095 => 270096)
--- releases/WebKitGTK/webkit-2.30/LayoutTests/ChangeLog 2020-11-20 10:39:38 UTC (rev 270095)
+++ releases/WebKitGTK/webkit-2.30/LayoutTests/ChangeLog 2020-11-20 10:39:57 UTC (rev 270096)
@@ -1,3 +1,13 @@
+2020-11-09 Fujii Hironori <hironori.fu...@sony.com>
+
+ [TextureMapper] The top and left sides of drop-shadow are clipped
+ https://bugs.webkit.org/show_bug.cgi?id=218647
+
+ Reviewed by Don Olmstead.
+
+ * compositing/filters/drop-shadow-expected.html: Added.
+ * compositing/filters/drop-shadow.html: Added.
+
2020-11-08 Fujii Hironori <hironori.fu...@sony.com>
TextureMapperLayer::computeOverlapRegions: Accumulate nested replica transform matrices recursively
Added: releases/WebKitGTK/webkit-2.30/LayoutTests/compositing/filters/drop-shadow-expected.html (0 => 270096)
--- releases/WebKitGTK/webkit-2.30/LayoutTests/compositing/filters/drop-shadow-expected.html (rev 0)
+++ releases/WebKitGTK/webkit-2.30/LayoutTests/compositing/filters/drop-shadow-expected.html 2020-11-20 10:39:57 UTC (rev 270096)
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <style>
+ #x {
+ transform: translate(100px, 100px);
+ }
+ div div {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: green;
+ }
+ .a {
+ transform: translate(-60px, -60px);
+ filter: drop-shadow(-20px -20px 0px blue);
+ }
+ .b {
+ transform: translate(-60px, 60px);
+ filter: drop-shadow(-20px 20px 0px blue);
+ }
+ .c {
+ transform: translate(60px, -60px);
+ filter: drop-shadow(20px -20px 0px blue);
+ }
+ .d {
+ transform: translate(60px, 60px);
+ filter: drop-shadow(20px 20px 0px blue);
+ }
+ </style>
+ </head>
+ <body>
+ <div id=x>
+ <div class=a></div>
+ <div class=b></div>
+ <div class=c></div>
+ <div class=d></div>
+ </div>
+ </body>
+</html>
Added: releases/WebKitGTK/webkit-2.30/LayoutTests/compositing/filters/drop-shadow.html (0 => 270096)
--- releases/WebKitGTK/webkit-2.30/LayoutTests/compositing/filters/drop-shadow.html (rev 0)
+++ releases/WebKitGTK/webkit-2.30/LayoutTests/compositing/filters/drop-shadow.html 2020-11-20 10:39:57 UTC (rev 270096)
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <style>
+ #x {
+ transform: translate(100px, 100px);
+ }
+ div div {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: green;
+ will-change: transform;
+ }
+ .a {
+ transform: translate(-60px, -60px);
+ filter: drop-shadow(-20px -20px 0px blue);
+ }
+ .b {
+ transform: translate(-60px, 60px);
+ filter: drop-shadow(-20px 20px 0px blue);
+ }
+ .c {
+ transform: translate(60px, -60px);
+ filter: drop-shadow(20px -20px 0px blue);
+ }
+ .d {
+ transform: translate(60px, 60px);
+ filter: drop-shadow(20px 20px 0px blue);
+ }
+ </style>
+ </head>
+ <body>
+ <div id=x>
+ <div class=a></div>
+ <div class=b></div>
+ <div class=c></div>
+ <div class=d></div>
+ </div>
+ </body>
+</html>
Modified: releases/WebKitGTK/webkit-2.30/Source/WebCore/ChangeLog (270095 => 270096)
--- releases/WebKitGTK/webkit-2.30/Source/WebCore/ChangeLog 2020-11-20 10:39:38 UTC (rev 270095)
+++ releases/WebKitGTK/webkit-2.30/Source/WebCore/ChangeLog 2020-11-20 10:39:57 UTC (rev 270096)
@@ -1,3 +1,25 @@
+2020-11-09 Fujii Hironori <hironori.fu...@sony.com>
+
+ [TextureMapper] The top and left sides of drop-shadow are clipped
+ https://bugs.webkit.org/show_bug.cgi?id=218647
+
+ Reviewed by Don Olmstead.
+
+ TextureMapperLayer::computeOverlapRegions incorrectly calculated
+ the local bounding rect for top and left of outsets.
+
+ The drop-shadow was incorrectly blended with the content.
+
+ Test: compositing/filters/drop-shadow.html
+
+ * platform/graphics/texmap/TextureMapperLayer.cpp:
+ (WebCore::TextureMapperLayer::computeOverlapRegions): Stopped
+ using std::max for the left and top of outsets. Stopped taking the
+ unite with unfilteredTargetRect because outsets are always
+ positive.
+ * platform/graphics/texmap/TextureMapperShaderProgram.cpp:
+ Fixed sourceOver().
+
2020-11-08 Fujii Hironori <hironori.fu...@sony.com>
TextureMapperLayer::computeOverlapRegions: Accumulate nested replica transform matrices recursively
Modified: releases/WebKitGTK/webkit-2.30/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp (270095 => 270096)
--- releases/WebKitGTK/webkit-2.30/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp 2020-11-20 10:39:38 UTC (rev 270095)
+++ releases/WebKitGTK/webkit-2.30/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp 2020-11-20 10:39:57 UTC (rev 270096)
@@ -332,10 +332,8 @@
if (m_currentFilters.hasOutsets()) {
auto outsets = m_currentFilters.outsets();
- IntRect unfilteredTargetRect(localBoundingRect);
- localBoundingRect.move(std::max(0, -outsets.left()), std::max(0, -outsets.top()));
+ localBoundingRect.move(-outsets.left(), -outsets.top());
localBoundingRect.expand(outsets.left() + outsets.right(), outsets.top() + outsets.bottom());
- localBoundingRect.unite(unfilteredTargetRect);
}
TransformationMatrix transform(accumulatedReplicaTransform);
Modified: releases/WebKitGTK/webkit-2.30/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp (270095 => 270096)
--- releases/WebKitGTK/webkit-2.30/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp 2020-11-20 10:39:38 UTC (rev 270095)
+++ releases/WebKitGTK/webkit-2.30/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp 2020-11-20 10:39:57 UTC (rev 270096)
@@ -393,7 +393,7 @@
color *= total;
}
- vec4 sourceOver(vec4 src, vec4 dst) { return src + dst * (1. - dst.a); }
+ vec4 sourceOver(vec4 src, vec4 dst) { return src + dst * (1. - src.a); }
void applyContentTexture(inout vec4 color, vec2 texCoord)
{
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes