Title: [111021] trunk/Source
Revision
111021
Author
[email protected]
Date
2012-03-16 09:59:43 -0700 (Fri, 16 Mar 2012)

Log Message

[chromium] Remove surface damage client from occlusion tracker
https://bugs.webkit.org/show_bug.cgi?id=81242

Patch by Dana Jansens <[email protected]> on 2012-03-16
Reviewed by Adrienne Walker.

Source/WebCore:

Code was not used yet, so no new tests. Removing tests instead!

* platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
(WebCore::::CCOcclusionTrackerBase):
(WebCore::::layerScissorRectInTargetSurface):
(WebCore):
* platform/graphics/chromium/cc/CCOcclusionTracker.h:
(WebCore):
(CCOcclusionTrackerBase):

Source/WebKit/chromium:

* tests/CCOcclusionTrackerTest.cpp:
(WebCore):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (111020 => 111021)


--- trunk/Source/WebCore/ChangeLog	2012-03-16 16:56:57 UTC (rev 111020)
+++ trunk/Source/WebCore/ChangeLog	2012-03-16 16:59:43 UTC (rev 111021)
@@ -1,3 +1,20 @@
+2012-03-16  Dana Jansens  <[email protected]>
+
+        [chromium] Remove surface damage client from occlusion tracker
+        https://bugs.webkit.org/show_bug.cgi?id=81242
+
+        Reviewed by Adrienne Walker.
+
+        Code was not used yet, so no new tests. Removing tests instead!
+
+        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
+        (WebCore::::CCOcclusionTrackerBase):
+        (WebCore::::layerScissorRectInTargetSurface):
+        (WebCore):
+        * platform/graphics/chromium/cc/CCOcclusionTracker.h:
+        (WebCore):
+        (CCOcclusionTrackerBase):
+
 2012-03-16  Tommy Widenflycht  <[email protected]>
 
         MediaStream API (JSEP): Introducing PeerConnection00Handler

Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.cpp (111020 => 111021)


--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.cpp	2012-03-16 16:56:57 UTC (rev 111020)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.cpp	2012-03-16 16:59:43 UTC (rev 111021)
@@ -41,22 +41,12 @@
 template<typename LayerType, typename RenderSurfaceType>
 CCOcclusionTrackerBase<LayerType, RenderSurfaceType>::CCOcclusionTrackerBase(IntRect scissorRectInScreenSpace)
     : m_scissorRectInScreenSpace(scissorRectInScreenSpace)
-    , m_surfaceDamageClient(0)
     , m_overdrawMetrics(CCOverdrawMetrics::create())
     , m_usePaintTracking(true) // FIXME: Remove this when paint tracking is on for paint culling.
 {
 }
 
 template<typename LayerType, typename RenderSurfaceType>
-CCOcclusionTrackerBase<LayerType, RenderSurfaceType>::CCOcclusionTrackerBase(IntRect scissorRectInScreenSpace, const DamageClientType* surfaceDamageClient)
-    : m_scissorRectInScreenSpace(scissorRectInScreenSpace)
-    , m_surfaceDamageClient(surfaceDamageClient)
-    , m_overdrawMetrics(CCOverdrawMetrics::create())
-    , m_usePaintTracking(true) // FIXME: Remove this when paint tracking is on for paint culling.
-{
-}
-
-template<typename LayerType, typename RenderSurfaceType>
 void CCOcclusionTrackerBase<LayerType, RenderSurfaceType>::enterTargetRenderSurface(const RenderSurfaceType* newTarget)
 {
     if (!m_stack.isEmpty() && m_stack.last().surface == newTarget)
@@ -333,8 +323,7 @@
 {
     const RenderSurfaceType* targetSurface = m_stack.last().surface;
     FloatRect totalScissor = targetSurface->contentRect();
-    if (m_surfaceDamageClient)
-        totalScissor.intersect(m_surfaceDamageClient->damageRect(targetSurface));
+    // FIXME: layer->clipRect() and layer->usesLayerClipping() is changing: https://bugs.webkit.org/show_bug.cgi?id=80622
     if (!layer->clipRect().isEmpty())
         totalScissor.intersect(layer->clipRect());
     return enclosingIntRect(totalScissor);
@@ -357,7 +346,6 @@
 
 // Declare the possible functions here for the linker.
 template CCOcclusionTrackerBase<LayerChromium, RenderSurfaceChromium>::CCOcclusionTrackerBase(IntRect scissorRectInScreenSpace);
-template CCOcclusionTrackerBase<LayerChromium, RenderSurfaceChromium>::CCOcclusionTrackerBase(IntRect scissorRectInScreenSpace, const CCOcclusionTrackerDamageClient* surfaceDamageClient);
 template void CCOcclusionTrackerBase<LayerChromium, RenderSurfaceChromium>::enterTargetRenderSurface(const RenderSurfaceChromium* newTarget);
 template void CCOcclusionTrackerBase<LayerChromium, RenderSurfaceChromium>::finishedTargetRenderSurface(const LayerChromium* owningLayer, const RenderSurfaceChromium* finishedTarget);
 template void CCOcclusionTrackerBase<LayerChromium, RenderSurfaceChromium>::leaveToTargetRenderSurface(const RenderSurfaceChromium* newTarget);
@@ -369,7 +357,6 @@
 template IntRect CCOcclusionTrackerBase<LayerChromium, RenderSurfaceChromium>::layerScissorRectInTargetSurface(const LayerChromium*) const;
 
 template CCOcclusionTrackerBase<CCLayerImpl, CCRenderSurface>::CCOcclusionTrackerBase(IntRect scissorRectInScreenSpace);
-template CCOcclusionTrackerBase<CCLayerImpl, CCRenderSurface>::CCOcclusionTrackerBase(IntRect scissorRectInScreenSpace, const CCOcclusionTrackerDamageClientImpl* surfaceDamageClient);
 template void CCOcclusionTrackerBase<CCLayerImpl, CCRenderSurface>::enterTargetRenderSurface(const CCRenderSurface* newTarget);
 template void CCOcclusionTrackerBase<CCLayerImpl, CCRenderSurface>::finishedTargetRenderSurface(const CCLayerImpl* owningLayer, const CCRenderSurface* finishedTarget);
 template void CCOcclusionTrackerBase<CCLayerImpl, CCRenderSurface>::leaveToTargetRenderSurface(const CCRenderSurface* newTarget);

Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.h (111020 => 111021)


--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.h	2012-03-16 16:56:57 UTC (rev 111020)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.h	2012-03-16 16:59:43 UTC (rev 111021)
@@ -37,15 +37,6 @@
 class LayerChromium;
 class RenderSurfaceChromium;
 
-template<typename RenderSurfaceType>
-class CCOcclusionTrackerDamageClientBase {
-public:
-    virtual FloatRect damageRect(const RenderSurfaceType*) const = 0;
-};
-
-typedef CCOcclusionTrackerDamageClientBase<RenderSurfaceChromium> CCOcclusionTrackerDamageClient;
-typedef CCOcclusionTrackerDamageClientBase<CCRenderSurface> CCOcclusionTrackerDamageClientImpl;
-
 // This class is used to track occlusion of layers while traversing them in a front-to-back order. As each layer is visited, one of the
 // methods in this class is called to notify it about the current target surface.
 // Then, occlusion in the content space of the current layer may be queried, via methods such as occluded() and unoccludedContentRect().
@@ -54,10 +45,8 @@
 template<typename LayerType, typename RenderSurfaceType>
 class CCOcclusionTrackerBase {
     WTF_MAKE_NONCOPYABLE(CCOcclusionTrackerBase);
-    typedef CCOcclusionTrackerDamageClientBase<RenderSurfaceType> DamageClientType;
 public:
     CCOcclusionTrackerBase(IntRect scissorRectInScreenSpace);
-    CCOcclusionTrackerBase(IntRect scissorRectInScreenSpace, const DamageClientType*);
 
     // Called when visiting a layer representing itself. If the target was not already current, then this indicates we have entered a new surface subtree.
     void enterTargetRenderSurface(const RenderSurfaceType* newTarget);
@@ -111,7 +100,6 @@
 
 private:
     IntRect m_scissorRectInScreenSpace;
-    const DamageClientType* m_surfaceDamageClient;
     OwnPtr<CCOverdrawMetrics> m_overdrawMetrics;
     bool m_usePaintTracking; // FIXME: Remove this when paint tracking is on for paint culling.
 };

Modified: trunk/Source/WebKit/chromium/ChangeLog (111020 => 111021)


--- trunk/Source/WebKit/chromium/ChangeLog	2012-03-16 16:56:57 UTC (rev 111020)
+++ trunk/Source/WebKit/chromium/ChangeLog	2012-03-16 16:59:43 UTC (rev 111021)
@@ -1,3 +1,13 @@
+2012-03-16  Dana Jansens  <[email protected]>
+
+        [chromium] Remove surface damage client from occlusion tracker
+        https://bugs.webkit.org/show_bug.cgi?id=81242
+
+        Reviewed by Adrienne Walker.
+
+        * tests/CCOcclusionTrackerTest.cpp:
+        (WebCore):
+
 2012-03-16  Ian Vollick  <[email protected]>
 
         [chromium] Threaded opacity animation jump to opacity of 0

Modified: trunk/Source/WebKit/chromium/tests/CCOcclusionTrackerTest.cpp (111020 => 111021)


--- trunk/Source/WebKit/chromium/tests/CCOcclusionTrackerTest.cpp	2012-03-16 16:56:57 UTC (rev 111020)
+++ trunk/Source/WebKit/chromium/tests/CCOcclusionTrackerTest.cpp	2012-03-16 16:59:43 UTC (rev 111021)
@@ -79,12 +79,6 @@
     {
     }
 
-    TestCCOcclusionTrackerBase(IntRect screenScissorRect, const CCOcclusionTrackerDamageClientBase<RenderSurfaceType>* damageClient)
-        : CCOcclusionTrackerBase<LayerType, RenderSurfaceType>(screenScissorRect, damageClient)
-        , m_overrideLayerScissorRect(false)
-    {
-    }
-
     Region occlusionInScreenSpace() const { return CCOcclusionTrackerBase<LayerType, RenderSurfaceType>::m_stack.last().occlusionInScreen; }
     Region occlusionInTargetSurface() const { return CCOcclusionTrackerBase<LayerType, RenderSurfaceType>::m_stack.last().occlusionInTarget; }
 
@@ -102,20 +96,6 @@
     IntRect m_layerScissorRect;
 };
 
-template<typename RenderSurfaceType>
-class TestDamageClient : public CCOcclusionTrackerDamageClientBase<RenderSurfaceType> {
-public:
-    // The interface
-    virtual FloatRect damageRect(const RenderSurfaceType*) const { return m_damageRect; }
-
-    // Testing stuff
-    TestDamageClient(const FloatRect& damageRect) : m_damageRect(damageRect) { }
-    void setDamageRect(const FloatRect& damageRect) { m_damageRect = damageRect; }
-
-private:
-    FloatRect m_damageRect;
-};
-
 struct CCOcclusionTrackerTestMainThreadTypes {
     typedef LayerChromium LayerType;
     typedef RenderSurfaceChromium RenderSurfaceType;
@@ -1255,31 +1235,6 @@
 ALL_CCOCCLUSIONTRACKER_TEST(CCOcclusionTrackerTestScreenScissorRectOutsideChild);
 
 template<class Types, bool opaqueLayers>
-class CCOcclusionTrackerTestDamageRectOutsideChild : public CCOcclusionTrackerTest<Types, opaqueLayers> {
-protected:
-    void runMyTest()
-    {
-        typename Types::ContentLayerType* parent = this->createRoot(this->identityMatrix, FloatPoint(0, 0), IntSize(300, 300));
-        typename Types::ContentLayerType* layer = this->createDrawingSurface(parent, this->identityMatrix, FloatPoint(0, 0), IntSize(200, 200), true);
-        this->calcDrawEtc(parent);
-
-        TestDamageClient<typename Types::RenderSurfaceType> damage(FloatRect(200, 100, 100, 100));
-        TestCCOcclusionTrackerBase<typename Types::LayerType, typename Types::RenderSurfaceType> occlusion(IntRect(0, 0, 1000, 1000), &damage);
-
-        occlusion.enterTargetRenderSurface(layer->renderSurface());
-
-        EXPECT_TRUE(occlusion.unoccludedContentRect(layer, IntRect(0, 0, 200, 200)).isEmpty());
-
-        occlusion.markOccludedBehindLayer(layer);
-        occlusion.leaveToTargetRenderSurface(parent->renderSurface());
-
-        EXPECT_EQ_RECT(IntRect(200, 100, 100, 100), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300)));
-    }
-};
-
-ALL_CCOCCLUSIONTRACKER_TEST(CCOcclusionTrackerTestDamageRectOutsideChild);
-
-template<class Types, bool opaqueLayers>
 class CCOcclusionTrackerTestLayerScissorRectOverChild : public CCOcclusionTrackerTest<Types, opaqueLayers> {
 protected:
     void runMyTest()
@@ -1356,31 +1311,6 @@
 ALL_CCOCCLUSIONTRACKER_TEST(CCOcclusionTrackerTestScreenScissorRectOverChild);
 
 template<class Types, bool opaqueLayers>
-class CCOcclusionTrackerTestDamageRectOverChild : public CCOcclusionTrackerTest<Types, opaqueLayers> {
-protected:
-    void runMyTest()
-    {
-        typename Types::ContentLayerType* parent = this->createRoot(this->identityMatrix, FloatPoint(0, 0), IntSize(300, 300));
-        typename Types::ContentLayerType* layer = this->createDrawingSurface(parent, this->identityMatrix, FloatPoint(0, 0), IntSize(200, 200), true);
-        this->calcDrawEtc(parent);
-
-        TestDamageClient<typename Types::RenderSurfaceType> damage(FloatRect(100, 100, 100, 100));
-        TestCCOcclusionTrackerBase<typename Types::LayerType, typename Types::RenderSurfaceType> occlusion(IntRect(0, 0, 1000, 1000), &damage);
-
-        occlusion.enterTargetRenderSurface(layer->renderSurface());
-
-        EXPECT_EQ_RECT(IntRect(100, 100, 100, 100), occlusion.unoccludedContentRect(layer, IntRect(0, 0, 200, 200)));
-
-        occlusion.markOccludedBehindLayer(layer);
-        occlusion.leaveToTargetRenderSurface(parent->renderSurface());
-
-        EXPECT_TRUE(occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300)).isEmpty());
-    }
-};
-
-ALL_CCOCCLUSIONTRACKER_TEST(CCOcclusionTrackerTestDamageRectOverChild);
-
-template<class Types, bool opaqueLayers>
 class CCOcclusionTrackerTestLayerScissorRectPartlyOverChild : public CCOcclusionTrackerTest<Types, opaqueLayers> {
 protected:
     void runMyTest()
@@ -1465,31 +1395,6 @@
 ALL_CCOCCLUSIONTRACKER_TEST(CCOcclusionTrackerTestScreenScissorRectPartlyOverChild);
 
 template<class Types, bool opaqueLayers>
-class CCOcclusionTrackerTestDamageRectPartlyOverChild : public CCOcclusionTrackerTest<Types, opaqueLayers> {
-protected:
-    void runMyTest()
-    {
-        typename Types::ContentLayerType* parent = this->createRoot(this->identityMatrix, FloatPoint(0, 0), IntSize(300, 300));
-        typename Types::ContentLayerType* layer = this->createDrawingSurface(parent, this->identityMatrix, FloatPoint(0, 0), IntSize(200, 200), true);
-        this->calcDrawEtc(parent);
-
-        TestDamageClient<typename Types::RenderSurfaceType> damage(FloatRect(50, 50, 200, 200));
-        TestCCOcclusionTrackerBase<typename Types::LayerType, typename Types::RenderSurfaceType> occlusion(IntRect(0, 0, 1000, 1000), &damage);
-
-        occlusion.enterTargetRenderSurface(layer->renderSurface());
-
-        EXPECT_EQ_RECT(IntRect(50, 50, 150, 150), occlusion.unoccludedContentRect(layer, IntRect(0, 0, 200, 200)));
-
-        occlusion.markOccludedBehindLayer(layer);
-        occlusion.leaveToTargetRenderSurface(parent->renderSurface());
-
-        EXPECT_EQ_RECT(IntRect(50, 50, 200, 200), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300)));
-    }
-};
-
-ALL_CCOCCLUSIONTRACKER_TEST(CCOcclusionTrackerTestDamageRectPartlyOverChild);
-
-template<class Types, bool opaqueLayers>
 class CCOcclusionTrackerTestLayerScissorRectOverNothing : public CCOcclusionTrackerTest<Types, opaqueLayers> {
 protected:
     void runMyTest()
@@ -1574,31 +1479,6 @@
 ALL_CCOCCLUSIONTRACKER_TEST(CCOcclusionTrackerTestScreenScissorRectOverNothing);
 
 template<class Types, bool opaqueLayers>
-class CCOcclusionTrackerTestDamageRectOverNothing : public CCOcclusionTrackerTest<Types, opaqueLayers> {
-protected:
-    void runMyTest()
-    {
-        typename Types::ContentLayerType* parent = this->createRoot(this->identityMatrix, FloatPoint(0, 0), IntSize(300, 300));
-        typename Types::ContentLayerType* layer = this->createDrawingSurface(parent, this->identityMatrix, FloatPoint(0, 0), IntSize(200, 200), true);
-        this->calcDrawEtc(parent);
-
-        TestDamageClient<typename Types::RenderSurfaceType> damage(FloatRect(500, 500, 100, 100));
-        TestCCOcclusionTrackerBase<typename Types::LayerType, typename Types::RenderSurfaceType> occlusion(IntRect(0, 0, 1000, 1000), &damage);
-
-        occlusion.enterTargetRenderSurface(layer->renderSurface());
-
-        EXPECT_TRUE(occlusion.unoccludedContentRect(layer, IntRect(0, 0, 200, 200)).isEmpty());
-
-        occlusion.markOccludedBehindLayer(layer);
-        occlusion.leaveToTargetRenderSurface(parent->renderSurface());
-
-        EXPECT_TRUE(occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300)).isEmpty());
-    }
-};
-
-ALL_CCOCCLUSIONTRACKER_TEST(CCOcclusionTrackerTestDamageRectOverNothing);
-
-template<class Types, bool opaqueLayers>
 class CCOcclusionTrackerTestLayerScissorRectForLayerOffOrigin : public CCOcclusionTrackerTest<Types, opaqueLayers> {
 protected:
     void runMyTest()
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to