Title: [139083] trunk/Source/WebCore
Revision
139083
Author
[email protected]
Date
2013-01-08 11:15:56 -0800 (Tue, 08 Jan 2013)

Log Message

Added OpaqueRegionSkia::currentTrackingOpaqueRect

[chromium] Add OpaqueRegionSkia::currentTrackingOpaqueRect
https://bugs.webkit.org/show_bug.cgi?id=106267

Reviewed by Stephen White.

No new tests needed. No change in functionality.

* platform/graphics/skia/OpaqueRegionSkia.cpp:
(WebCore::OpaqueRegionSkia::applyOpaqueRegionFromLayer):
(WebCore::OpaqueRegionSkia::markRectAsOpaque):
(WebCore::OpaqueRegionSkia::markRectAsNonOpaque):
(WebCore::OpaqueRegionSkia::markAllAsNonOpaque):
(WebCore::OpaqueRegionSkia::currentTrackingOpaqueRect):
(WebCore):
* platform/graphics/skia/OpaqueRegionSkia.h:
(OpaqueRegionSkia):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (139082 => 139083)


--- trunk/Source/WebCore/ChangeLog	2013-01-08 19:00:33 UTC (rev 139082)
+++ trunk/Source/WebCore/ChangeLog	2013-01-08 19:15:56 UTC (rev 139083)
@@ -1,3 +1,24 @@
+2013-01-08  Alok Priyadarshi  <[email protected]>
+
+        Added OpaqueRegionSkia::currentTrackingOpaqueRect
+
+        [chromium] Add OpaqueRegionSkia::currentTrackingOpaqueRect
+        https://bugs.webkit.org/show_bug.cgi?id=106267
+
+        Reviewed by Stephen White.
+
+        No new tests needed. No change in functionality.
+
+        * platform/graphics/skia/OpaqueRegionSkia.cpp:
+        (WebCore::OpaqueRegionSkia::applyOpaqueRegionFromLayer):
+        (WebCore::OpaqueRegionSkia::markRectAsOpaque):
+        (WebCore::OpaqueRegionSkia::markRectAsNonOpaque):
+        (WebCore::OpaqueRegionSkia::markAllAsNonOpaque):
+        (WebCore::OpaqueRegionSkia::currentTrackingOpaqueRect):
+        (WebCore):
+        * platform/graphics/skia/OpaqueRegionSkia.h:
+        (OpaqueRegionSkia):
+
 2013-01-08  Zan Dobersek  <[email protected]>
 
         [GTK] Build failures when building with python 3.3

Modified: trunk/Source/WebCore/platform/graphics/skia/OpaqueRegionSkia.cpp (139082 => 139083)


--- trunk/Source/WebCore/platform/graphics/skia/OpaqueRegionSkia.cpp	2013-01-08 19:00:33 UTC (rev 139082)
+++ trunk/Source/WebCore/platform/graphics/skia/OpaqueRegionSkia.cpp	2013-01-08 19:15:56 UTC (rev 139083)
@@ -164,14 +164,6 @@
     return true;
 }
 
-static inline SkRect& currentTrackingOpaqueRect(SkRect& rootOpaqueRect, Vector<OpaqueRegionSkia::CanvasLayerState, 3>& canvasLayerStack)
-{
-    // If we are drawing into a canvas layer, then track the opaque rect in that layer.
-    if (!canvasLayerStack.isEmpty())
-        return canvasLayerStack.last().opaqueRect;
-    return rootOpaqueRect;
-}
-
 void OpaqueRegionSkia::pushCanvasLayer(const SkPaint* paint)
 {
     CanvasLayerState state;
@@ -333,7 +325,7 @@
 
     SkRect sourceOpaqueRect = layerOpaqueRect;
     // Save the opaque area in the destination, so we can preserve the parts of it under the source opaque area if possible.
-    SkRect destinationOpaqueRect = currentTrackingOpaqueRect(m_opaqueRect, m_canvasLayerStack);
+    SkRect destinationOpaqueRect = currentTrackingOpaqueRect();
 
     bool outsideSourceOpaqueRectPreservesOpaque = xfermodePreservesOpaque(paint, false);
     if (!outsideSourceOpaqueRectPreservesOpaque)
@@ -363,7 +355,7 @@
     // rectangle then we do that, as that is the cheapest way to increase the area returned
     // without increasing the complexity.
 
-    SkRect& opaqueRect = currentTrackingOpaqueRect(m_opaqueRect, m_canvasLayerStack);
+    SkRect& opaqueRect = currentTrackingOpaqueRect();
 
     if (rect.isEmpty())
         return;
@@ -397,7 +389,7 @@
     // We want to keep as much of the current opaque rectangle as we can, so find the one largest
     // rectangle inside m_opaqueRect that does not intersect with |rect|.
 
-    SkRect& opaqueRect = currentTrackingOpaqueRect(m_opaqueRect, m_canvasLayerStack);
+    SkRect& opaqueRect = currentTrackingOpaqueRect();
 
     if (!SkRect::Intersects(rect, opaqueRect))
         return;
@@ -432,8 +424,14 @@
 
 void OpaqueRegionSkia::markAllAsNonOpaque()
 {
-    SkRect& opaqueRect = currentTrackingOpaqueRect(m_opaqueRect, m_canvasLayerStack);
+    SkRect& opaqueRect = currentTrackingOpaqueRect();
     opaqueRect.setEmpty();
 }
 
+SkRect& OpaqueRegionSkia::currentTrackingOpaqueRect()
+{
+    // If we are drawing into a canvas layer, then track the opaque rect in that layer.
+    return m_canvasLayerStack.isEmpty() ? m_opaqueRect : m_canvasLayerStack.last().opaqueRect;
+}
+
 } // namespace WebCore

Modified: trunk/Source/WebCore/platform/graphics/skia/OpaqueRegionSkia.h (139082 => 139083)


--- trunk/Source/WebCore/platform/graphics/skia/OpaqueRegionSkia.h	2013-01-08 19:00:33 UTC (rev 139082)
+++ trunk/Source/WebCore/platform/graphics/skia/OpaqueRegionSkia.h	2013-01-08 19:15:56 UTC (rev 139083)
@@ -91,6 +91,8 @@
     void markRectAsNonOpaque(const SkRect&);
     void markAllAsNonOpaque();
 
+    SkRect& currentTrackingOpaqueRect();
+
     SkRect m_opaqueRect;
 
     Vector<CanvasLayerState, 3> m_canvasLayerStack;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to