Modified: trunk/Source/WebKit/chromium/tests/CCQuadCullerTest.cpp (111195 => 111196)
--- trunk/Source/WebKit/chromium/tests/CCQuadCullerTest.cpp 2012-03-19 16:48:35 UTC (rev 111195)
+++ trunk/Source/WebKit/chromium/tests/CCQuadCullerTest.cpp 2012-03-19 16:53:25 UTC (rev 111196)
@@ -78,16 +78,18 @@
return layer.release();
}
-static void appendQuads(CCQuadList& quadList, CCTiledLayerImpl* layer, CCOcclusionTrackerImpl& occlusionTracker)
+static void appendQuads(CCQuadList& quadList, Vector<OwnPtr<CCSharedQuadState> >& sharedStateList, CCTiledLayerImpl* layer, CCOcclusionTrackerImpl& occlusionTracker)
{
CCQuadCuller quadCuller(quadList, layer, &occlusionTracker);
OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState();
layer->appendQuads(quadCuller, sharedQuadState.get());
+ sharedStateList.append(sharedQuadState.release());
}
#define DECLARE_AND_INITIALIZE_TEST_QUADS \
DebugScopedSetImplThread impl; \
CCQuadList quadList; \
+ Vector<OwnPtr<CCSharedQuadState> > sharedStateList; \
TransformationMatrix childTransform; \
IntSize rootSize = IntSize(300, 300); \
IntRect rootRect = IntRect(IntPoint(), rootSize); \
@@ -102,8 +104,8 @@
OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(TransformationMatrix(), childRect, 1.0, true, IntRect());
TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
- appendQuads(quadList, childLayer.get(), occlusionTracker);
- appendQuads(quadList, rootLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
EXPECT_EQ(quadList.size(), 13u);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 130000, 1);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 0, 1);
@@ -118,9 +120,9 @@
OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(TransformationMatrix(), childRect, 1.0, true, IntRect());
TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
- appendQuads(quadList, childLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
occlusionTracker.markOccludedBehindLayer(childLayer.get());
- appendQuads(quadList, rootLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
EXPECT_EQ(quadList.size(), 9u);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 90000, 1);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 0, 1);
@@ -135,9 +137,9 @@
OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(childTransform, childRect, 0.9, true, IntRect());
TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
- appendQuads(quadList, childLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
occlusionTracker.markOccludedBehindLayer(childLayer.get());
- appendQuads(quadList, rootLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
EXPECT_EQ(quadList.size(), 13u);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 90000, 1);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 40000, 1);
@@ -152,9 +154,9 @@
OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(childTransform, childRect, 1.0, false, IntRect());
TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
- appendQuads(quadList, childLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
occlusionTracker.markOccludedBehindLayer(childLayer.get());
- appendQuads(quadList, rootLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
EXPECT_EQ(quadList.size(), 13u);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 90000, 1);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 40000, 1);
@@ -171,9 +173,9 @@
OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(childTransform, childRect, 1.0, true, IntRect());
TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
- appendQuads(quadList, childLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
occlusionTracker.markOccludedBehindLayer(childLayer.get());
- appendQuads(quadList, rootLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
EXPECT_EQ(quadList.size(), 12u);
IntRect quadVisibleRect1 = quadList[5].get()->quadVisibleRect();
@@ -214,9 +216,9 @@
OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(childTransform, childRect, 1.0, true, IntRect());
TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
- appendQuads(quadList, childLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
occlusionTracker.markOccludedBehindLayer(childLayer.get());
- appendQuads(quadList, rootLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
EXPECT_EQ(quadList.size(), 2u);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 20363, 1);
@@ -242,9 +244,9 @@
OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(childTransform, childRect, 1.0, true, IntRect());
TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
- appendQuads(quadList, childLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
occlusionTracker.markOccludedBehindLayer(childLayer.get());
- appendQuads(quadList, rootLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
EXPECT_EQ(quadList.size(), 2u);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 19643, 1);
@@ -262,9 +264,9 @@
OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(childTransform, childRect, 1.0, true, IntRect());
TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
- appendQuads(quadList, childLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
occlusionTracker.markOccludedBehindLayer(childLayer.get());
- appendQuads(quadList, rootLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
EXPECT_EQ(quadList.size(), 9u);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 90000, 1);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 0, 1);
@@ -282,9 +284,9 @@
OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(childTransform, childRect, 1.0, false, childOpaqueRect);
TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
- appendQuads(quadList, childLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
occlusionTracker.markOccludedBehindLayer(childLayer.get());
- appendQuads(quadList, rootLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
EXPECT_EQ(quadList.size(), 12u);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 90000, 1);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 30000, 1);
@@ -302,9 +304,9 @@
OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(childTransform, childRect, 1.0, false, childOpaqueRect);
TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
- appendQuads(quadList, childLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
occlusionTracker.markOccludedBehindLayer(childLayer.get());
- appendQuads(quadList, rootLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
EXPECT_EQ(quadList.size(), 12u);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 90000, 1);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 25000, 1);
@@ -322,9 +324,9 @@
OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(childTransform, childRect, 1.0, false, childOpaqueRect);
TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
- appendQuads(quadList, childLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
occlusionTracker.markOccludedBehindLayer(childLayer.get());
- appendQuads(quadList, rootLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
EXPECT_EQ(quadList.size(), 13u);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 90000, 1);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 30000, 1);
@@ -342,9 +344,9 @@
OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(childTransform, childRect, 1.0, true, IntRect());
TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
- appendQuads(quadList, childLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
occlusionTracker.markOccludedBehindLayer(childLayer.get());
- appendQuads(quadList, rootLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
EXPECT_EQ(quadList.size(), 13u);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 130000, 1);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 0, 1);
@@ -368,9 +370,9 @@
OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(TransformationMatrix(), childRect, 1.0, true, IntRect());
TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
- appendQuads(quadList, childLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
occlusionTracker.markOccludedBehindLayer(childLayer.get());
- appendQuads(quadList, rootLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
EXPECT_EQ(quadList.size(), 12u);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 100600, 1);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 0, 1);
@@ -385,9 +387,9 @@
OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(TransformationMatrix(), childRect, 1.0, true, IntRect());
TestCCOcclusionTrackerImpl occlusionTracker(IntRect(200, 100, 100, 100));
- appendQuads(quadList, childLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
occlusionTracker.markOccludedBehindLayer(childLayer.get());
- appendQuads(quadList, rootLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
EXPECT_EQ(quadList.size(), 1u);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 10000, 1);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 0, 1);
@@ -402,9 +404,9 @@
OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(TransformationMatrix(), childRect, 1.0, true, IntRect());
TestCCOcclusionTrackerImpl occlusionTracker(IntRect(100, 100, 100, 100));
- appendQuads(quadList, childLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
occlusionTracker.markOccludedBehindLayer(childLayer.get());
- appendQuads(quadList, rootLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
EXPECT_EQ(quadList.size(), 1u);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 10000, 1);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 0, 1);
@@ -419,9 +421,9 @@
OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(TransformationMatrix(), childRect, 1.0, true, IntRect());
TestCCOcclusionTrackerImpl occlusionTracker(IntRect(50, 50, 200, 200));
- appendQuads(quadList, childLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
occlusionTracker.markOccludedBehindLayer(childLayer.get());
- appendQuads(quadList, rootLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
EXPECT_EQ(quadList.size(), 9u);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 40000, 1);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 0, 1);
@@ -436,9 +438,9 @@
OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(TransformationMatrix(), childRect, 1.0, true, IntRect());
TestCCOcclusionTrackerImpl occlusionTracker(IntRect(500, 500, 100, 100));
- appendQuads(quadList, childLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
occlusionTracker.markOccludedBehindLayer(childLayer.get());
- appendQuads(quadList, rootLayer.get(), occlusionTracker);
+ appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
EXPECT_EQ(quadList.size(), 0u);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 0, 1);
EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 0, 1);