Title: [135818] trunk/Source
Revision
135818
Author
[email protected]
Date
2012-11-26 22:15:45 -0800 (Mon, 26 Nov 2012)

Log Message

Coordinated Graphics: Set visibility to a mask layer in GraphicsLayer::setContentsVisible().
https://bugs.webkit.org/show_bug.cgi?id=103297

Patch by Huang Dongsung <[email protected]> on 2012-11-26
Reviewed by Noam Rosenthal.

GraphicsLayerTextureMapper and CoordinatedGraphicsLayer set the visibility of a
mask layer in setContentsVisible() and setMaskLayer() like setting a size.
This patch is needed because RenderLayerBacking does not set the visibility to a
mask layer like the size.

This patch does not change user experience because an invisible layer is not
rendered although the mask layer is rendered. In that sense, it is an
optimization patch.

Source/WebCore:

No new tests. It is an optimization patch.

* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::setMaskLayer):
(WebCore::GraphicsLayerTextureMapper::setContentsVisible):

Source/WebKit2:

* WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::setContentsVisible):
(WebCore::CoordinatedGraphicsLayer::setMaskLayer):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (135817 => 135818)


--- trunk/Source/WebCore/ChangeLog	2012-11-27 05:33:05 UTC (rev 135817)
+++ trunk/Source/WebCore/ChangeLog	2012-11-27 06:15:45 UTC (rev 135818)
@@ -1,3 +1,25 @@
+2012-11-26  Huang Dongsung  <[email protected]>
+
+        Coordinated Graphics: Set visibility to a mask layer in GraphicsLayer::setContentsVisible().
+        https://bugs.webkit.org/show_bug.cgi?id=103297
+
+        Reviewed by Noam Rosenthal.
+
+        GraphicsLayerTextureMapper and CoordinatedGraphicsLayer set the visibility of a
+        mask layer in setContentsVisible() and setMaskLayer() like setting a size.
+        This patch is needed because RenderLayerBacking does not set the visibility to a
+        mask layer like the size.
+
+        This patch does not change user experience because an invisible layer is not
+        rendered although the mask layer is rendered. In that sense, it is an
+        optimization patch.
+
+        No new tests. It is an optimization patch.
+
+        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
+        (WebCore::GraphicsLayerTextureMapper::setMaskLayer):
+        (WebCore::GraphicsLayerTextureMapper::setContentsVisible):
+
 2012-11-26  Kentaro Hara  <[email protected]>
 
         [V8] Rename EXCEPTION_BLOCK() macros

Modified: trunk/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp (135817 => 135818)


--- trunk/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp	2012-11-27 05:33:05 UTC (rev 135817)
+++ trunk/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp	2012-11-27 06:15:45 UTC (rev 135818)
@@ -195,6 +195,7 @@
     if (!value)
         return;
     value->setSize(size());
+    value->setContentsVisible(contentsAreVisible());
 }
 
 
@@ -300,6 +301,8 @@
         return;
     notifyChange(TextureMapperLayer::ContentsVisibleChange);
     GraphicsLayer::setContentsVisible(value);
+    if (maskLayer())
+        maskLayer()->setContentsVisible(value);
 }
 
 /* \reimp (GraphicsLayer.h)

Modified: trunk/Source/WebKit2/ChangeLog (135817 => 135818)


--- trunk/Source/WebKit2/ChangeLog	2012-11-27 05:33:05 UTC (rev 135817)
+++ trunk/Source/WebKit2/ChangeLog	2012-11-27 06:15:45 UTC (rev 135818)
@@ -1,3 +1,23 @@
+2012-11-26  Huang Dongsung  <[email protected]>
+
+        Coordinated Graphics: Set visibility to a mask layer in GraphicsLayer::setContentsVisible().
+        https://bugs.webkit.org/show_bug.cgi?id=103297
+
+        Reviewed by Noam Rosenthal.
+
+        GraphicsLayerTextureMapper and CoordinatedGraphicsLayer set the visibility of a
+        mask layer in setContentsVisible() and setMaskLayer() like setting a size.
+        This patch is needed because RenderLayerBacking does not set the visibility to a
+        mask layer like the size.
+
+        This patch does not change user experience because an invisible layer is not
+        rendered although the mask layer is rendered. In that sense, it is an
+        optimization patch.
+
+        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
+        (WebCore::CoordinatedGraphicsLayer::setContentsVisible):
+        (WebCore::CoordinatedGraphicsLayer::setMaskLayer):
+
 2012-11-26  Kyungjin Kim  <[email protected]>
 
         [WK2] Expose Accelerated2dCanvas flag set and get in WebKit2

Modified: trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp (135817 => 135818)


--- trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp	2012-11-27 05:33:05 UTC (rev 135817)
+++ trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp	2012-11-27 06:15:45 UTC (rev 135818)
@@ -269,6 +269,8 @@
     if (contentsAreVisible() == b)
         return;
     GraphicsLayer::setContentsVisible(b);
+    if (maskLayer())
+        maskLayer()->setContentsVisible(b);
 
     didChangeLayerState();
 }
@@ -390,6 +392,7 @@
         return;
 
     layer->setSize(size());
+    layer->setContentsVisible(contentsAreVisible());
     CoordinatedGraphicsLayer* CoordinatedGraphicsLayer = toCoordinatedGraphicsLayer(layer);
     CoordinatedGraphicsLayer->setMaskTarget(this);
     CoordinatedGraphicsLayer->didChangeLayerState();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to