Title: [110691] trunk/Source/WebCore
Revision
110691
Author
[email protected]
Date
2012-03-14 04:56:47 -0700 (Wed, 14 Mar 2012)

Log Message

3D transformed surfaces with z>0 gets cropped
https://bugs.webkit.org/show_bug.cgi?id=81009

Patch by Lars Knudsen <[email protected]> on 2012-03-14
Reviewed by Noam Rosenthal.

The scissor clipping in TextureMapperGL didn't take 3D transforms
into account when calculating the clipping region.
Now, it will bail out early if the transform is not affine.

No new tests. Tested by current compositing layout tests.

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

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (110690 => 110691)


--- trunk/Source/WebCore/ChangeLog	2012-03-14 11:47:36 UTC (rev 110690)
+++ trunk/Source/WebCore/ChangeLog	2012-03-14 11:56:47 UTC (rev 110691)
@@ -1,3 +1,19 @@
+2012-03-14  Lars Knudsen  <[email protected]>
+
+        3D transformed surfaces with z>0 gets cropped
+        https://bugs.webkit.org/show_bug.cgi?id=81009
+
+        Reviewed by Noam Rosenthal.
+
+        The scissor clipping in TextureMapperGL didn't take 3D transforms 
+        into account when calculating the clipping region.
+        Now, it will bail out early if the transform is not affine.
+
+        No new tests. Tested by current compositing layout tests.
+
+        * platform/graphics/texmap/TextureMapperGL.cpp:
+        (WebCore::TextureMapperGL::beginScissorClip):
+
 2012-03-14  Hajime Morrita  <[email protected]>
 
         Unreviewed build fix.

Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp (110690 => 110691)


--- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp	2012-03-14 11:47:36 UTC (rev 110690)
+++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp	2012-03-14 11:56:47 UTC (rev 110691)
@@ -604,6 +604,11 @@
 
 bool TextureMapperGL::beginScissorClip(const TransformationMatrix& modelViewMatrix, const FloatRect& targetRect)
 {
+    // 3D transforms are currently not supported in scissor clipping
+    // resulting in cropped surfaces when z>0.
+    if (!modelViewMatrix.isAffine())
+        return false;
+
     FloatQuad quad = modelViewMatrix.projectQuad(targetRect);
     IntRect rect = quad.enclosingBoundingBox();
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to