Title: [145911] trunk
Revision
145911
Author
[email protected]
Date
2013-03-15 10:07:34 -0700 (Fri, 15 Mar 2013)

Log Message

Source/WebCore: [Texmap] REGRESSION (r144190): Failure at style with preserve-3d and opacity
https://bugs.webkit.org/show_bug.cgi?id=112370

According to spec, we avoid masking and clipping when preserves-3d is enabled.
However, opacity should still work.
Allowing opacity when preserves-3d is on.

Patch by No'am Rosenthal <[email protected]> on 2013-03-15
Reviewed by Caio Marcelo de Oliveira Filho.

Test: compositing/overlap-blending/preserves3d-opacity.html

* platform/graphics/texmap/TextureMapperGL.cpp:
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintRecursive):

LayoutTests: [Texmap] REGRESSION (r144190): Failure at style with webkit-transform and opacity
https://bugs.webkit.org/show_bug.cgi?id=112370

Patch by No'am Rosenthal <[email protected]> on 2013-03-15
Reviewed by Caio Marcelo de Oliveira Filho.

New ref-test for opacity+preserves-3d.

* compositing/overlap-blending/preserves3d-opacity-expected.html: Added.
* compositing/overlap-blending/preserves3d-opacity.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (145910 => 145911)


--- trunk/LayoutTests/ChangeLog	2013-03-15 16:56:34 UTC (rev 145910)
+++ trunk/LayoutTests/ChangeLog	2013-03-15 17:07:34 UTC (rev 145911)
@@ -1,3 +1,15 @@
+2013-03-15  No'am Rosenthal  <[email protected]>
+
+        [Texmap] REGRESSION (r144190): Failure at style with webkit-transform and opacity
+        https://bugs.webkit.org/show_bug.cgi?id=112370
+
+        Reviewed by Caio Marcelo de Oliveira Filho.
+
+        New ref-test for opacity+preserves-3d.
+
+        * compositing/overlap-blending/preserves3d-opacity-expected.html: Added.
+        * compositing/overlap-blending/preserves3d-opacity.html: Added.
+
 2013-03-15  Andrey Kosyakov  <[email protected]>
 
         Unreviewed -- remove test expectations for timeline-receive-response-event and remove

Added: trunk/LayoutTests/compositing/overlap-blending/preserves3d-opacity-expected.html (0 => 145911)


--- trunk/LayoutTests/compositing/overlap-blending/preserves3d-opacity-expected.html	                        (rev 0)
+++ trunk/LayoutTests/compositing/overlap-blending/preserves3d-opacity-expected.html	2013-03-15 17:07:34 UTC (rev 145911)
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML>
+<html>
+  <head>
+    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
+    <style type="text/css" media="screen">
+      div {
+        -webkit-box-sizing: border-box;
+      }
+      .solid {
+        position: absolute;
+        width: 200px;
+        height: 200px;
+        background-color: green;
+      }
+
+      .opacity { opacity: .1; }
+
+      .composited {
+        -webkit-transform: translate3d(0, 0, 0);
+      }
+      * { margin: 0; padding: 0; }
+
+    </style>
+  </head>
+    <div class="opacity solid composited">123</div>
+
+</html>

Added: trunk/LayoutTests/compositing/overlap-blending/preserves3d-opacity.html (0 => 145911)


--- trunk/LayoutTests/compositing/overlap-blending/preserves3d-opacity.html	                        (rev 0)
+++ trunk/LayoutTests/compositing/overlap-blending/preserves3d-opacity.html	2013-03-15 17:07:34 UTC (rev 145911)
@@ -0,0 +1,28 @@
+<!DOCTYPE HTML>
+<html>
+  <head>
+    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
+    <style type="text/css" media="screen">
+      div {
+        -webkit-box-sizing: border-box;
+      }
+      .solid {
+        position: absolute;
+        width: 200px;
+        height: 200px;
+        background-color: green;
+      }
+
+      .opacity { opacity: .1; }
+
+      .preserve3d {
+        -webkit-transform: translateZ(0);
+        -webkit-transform-style: preserve-3d;
+      }
+      * { margin: 0; padding: 0; }
+
+    </style>
+  </head>
+    <div class="opacity solid preserve3d">123</div>
+
+</html>

Modified: trunk/Source/WebCore/ChangeLog (145910 => 145911)


--- trunk/Source/WebCore/ChangeLog	2013-03-15 16:56:34 UTC (rev 145910)
+++ trunk/Source/WebCore/ChangeLog	2013-03-15 17:07:34 UTC (rev 145911)
@@ -1,3 +1,20 @@
+2013-03-15  No'am Rosenthal  <[email protected]>
+
+        [Texmap] REGRESSION (r144190): Failure at style with preserve-3d and opacity
+        https://bugs.webkit.org/show_bug.cgi?id=112370
+
+        According to spec, we avoid masking and clipping when preserves-3d is enabled.
+        However, opacity should still work.
+        Allowing opacity when preserves-3d is on.
+
+        Reviewed by Caio Marcelo de Oliveira Filho.
+
+        Test: compositing/overlap-blending/preserves3d-opacity.html
+
+        * platform/graphics/texmap/TextureMapperGL.cpp:
+        * platform/graphics/texmap/TextureMapperLayer.cpp:
+        (WebCore::TextureMapperLayer::paintRecursive):
+
 2013-03-15  Konrad Piascik  <[email protected]>
 
         Get rid of useless forward declaration.

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


--- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp	2013-03-15 16:56:34 UTC (rev 145910)
+++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp	2013-03-15 17:07:34 UTC (rev 145911)
@@ -422,13 +422,14 @@
     if (!isVisible())
         return;
 
+    TextureMapperPaintOptions paintOptions(options);
+    paintOptions.opacity = options.opacity * m_currentOpacity;
+
     if (!shouldBlend()) {
-        paintSelfAndChildrenWithReplica(options);
+        paintSelfAndChildrenWithReplica(paintOptions);
         return;
     }
 
-    TextureMapperPaintOptions paintOptions(options);
-    paintOptions.opacity = options.opacity * m_currentOpacity;
     paintUsingOverlapRegions(paintOptions);
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to