summaryrefslogtreecommitdiff
path: root/Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-05-07 11:21:11 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-05-07 11:21:11 +0200
commit2cf6c8816a73e0132bd8fa3b509d62d7c51b6e47 (patch)
tree988e8c5b116dd0466244ae2fe5af8ee9be926d76 /Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp
parentdd91e772430dc294e3bf478c119ef8d43c0a3358 (diff)
downloadqtwebkit-2cf6c8816a73e0132bd8fa3b509d62d7c51b6e47.tar.gz
Imported WebKit commit 7e538425aa020340619e927792f3d895061fb54b (http://svn.webkit.org/repository/webkit/trunk@116286)
Diffstat (limited to 'Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp')
-rw-r--r--Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp128
1 files changed, 35 insertions, 93 deletions
diff --git a/Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp b/Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp
index ff7daa3c9..48a46dae1 100644
--- a/Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp
+++ b/Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp
@@ -27,6 +27,7 @@
#include "cc/CCTiledLayerImpl.h"
#include "CCLayerTestCommon.h"
+#include "MockCCQuadCuller.h"
#include "cc/CCSingleThreadProxy.h"
#include "cc/CCTileDrawQuad.h"
#include <gmock/gmock.h>
@@ -69,11 +70,12 @@ TEST(CCTiledLayerImplTest, emptyQuadList)
// Verify default layer does creates quads
{
OwnPtr<CCTiledLayerImpl> layer = createLayer(tileSize, layerSize, CCLayerTilingData::NoBorderTexels);
- CCQuadList quads;
+ MockCCQuadCuller quadCuller;
OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState();
- layer->appendQuads(quads, sharedQuadState.get());
+ bool hadMissingTiles = false;
+ layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles);
const unsigned numTiles = numTilesX * numTilesY;
- EXPECT_EQ(quads.size(), numTiles);
+ EXPECT_EQ(quadCuller.quadList().size(), numTiles);
}
// Layer with empty visible layer rect produces no quads
@@ -81,10 +83,11 @@ TEST(CCTiledLayerImplTest, emptyQuadList)
OwnPtr<CCTiledLayerImpl> layer = createLayer(tileSize, layerSize, CCLayerTilingData::NoBorderTexels);
layer->setVisibleLayerRect(IntRect());
- CCQuadList quads;
+ MockCCQuadCuller quadCuller;
OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState();
- layer->appendQuads(quads, sharedQuadState.get());
- EXPECT_EQ(quads.size(), 0u);
+ bool hadMissingTiles = false;
+ layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles);
+ EXPECT_EQ(quadCuller.quadList().size(), 0u);
}
// Layer with non-intersecting visible layer rect produces no quads
@@ -94,10 +97,11 @@ TEST(CCTiledLayerImplTest, emptyQuadList)
IntRect outsideBounds(IntPoint(-100, -100), IntSize(50, 50));
layer->setVisibleLayerRect(outsideBounds);
- CCQuadList quads;
+ MockCCQuadCuller quadCuller;
OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState();
- layer->appendQuads(quads, sharedQuadState.get());
- EXPECT_EQ(quads.size(), 0u);
+ bool hadMissingTiles = false;
+ layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles);
+ EXPECT_EQ(quadCuller.quadList().size(), 0u);
}
// Layer with skips draw produces no quads
@@ -105,10 +109,11 @@ TEST(CCTiledLayerImplTest, emptyQuadList)
OwnPtr<CCTiledLayerImpl> layer = createLayer(tileSize, layerSize, CCLayerTilingData::NoBorderTexels);
layer->setSkipsDraw(true);
- CCQuadList quads;
+ MockCCQuadCuller quadCuller;
OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState();
- layer->appendQuads(quads, sharedQuadState.get());
- EXPECT_EQ(quads.size(), 0u);
+ bool hadMissingTiles = false;
+ layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles);
+ EXPECT_EQ(quadCuller.quadList().size(), 0u);
}
}
@@ -126,12 +131,14 @@ TEST(CCTiledLayerImplTest, checkerboarding)
// No checkerboarding
{
- CCQuadList quads;
- layer->appendQuads(quads, sharedQuadState.get());
- EXPECT_EQ(quads.size(), 4u);
-
- for (size_t i = 0; i < quads.size(); ++i)
- EXPECT_EQ(quads[i]->material(), CCDrawQuad::TiledContent);
+ MockCCQuadCuller quadCuller;
+ bool hadMissingTiles = false;
+ layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles);
+ EXPECT_EQ(quadCuller.quadList().size(), 4u);
+ EXPECT_FALSE(hadMissingTiles);
+
+ for (size_t i = 0; i < quadCuller.quadList().size(); ++i)
+ EXPECT_EQ(quadCuller.quadList()[i]->material(), CCDrawQuad::TiledContent);
}
for (int i = 0; i < numTilesX; ++i)
@@ -140,11 +147,13 @@ TEST(CCTiledLayerImplTest, checkerboarding)
// All checkerboarding
{
- CCQuadList quads;
- layer->appendQuads(quads, sharedQuadState.get());
- EXPECT_EQ(quads.size(), 4u);
- for (size_t i = 0; i < quads.size(); ++i)
- EXPECT_EQ(quads[i]->material(), CCDrawQuad::SolidColor);
+ MockCCQuadCuller quadCuller;
+ bool hadMissingTiles = false;
+ layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles);
+ EXPECT_TRUE(hadMissingTiles);
+ EXPECT_EQ(quadCuller.quadList().size(), 4u);
+ for (size_t i = 0; i < quadCuller.quadList().size(); ++i)
+ EXPECT_NE(quadCuller.quadList()[i]->material(), CCDrawQuad::TiledContent);
}
}
@@ -154,8 +163,10 @@ static PassOwnPtr<CCSharedQuadState> getQuads(CCQuadList& quads, IntSize tileSiz
layer->setVisibleLayerRect(visibleLayerRect);
layer->setBounds(layerSize);
+ MockCCQuadCuller quadCuller(quads);
OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState();
- layer->appendQuads(quads, sharedQuadState.get());
+ bool hadMissingTiles = false;
+ layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles);
return sharedQuadState.release(); // The shared data must be owned as long as the quad list exists.
}
@@ -251,73 +262,4 @@ TEST(CCTiledLayerImplTest, tileOpaqueRectForLayerNoBorders)
}
}
-TEST(CCTiledLayerImplTest, backgroundCoversViewport)
-{
- DebugScopedSetImplThread scopedImplThread;
-
- const IntSize tileSize(10, 10);
- const int numTilesX = 2;
- const int numTilesY = 2;
- const unsigned numTiles = numTilesX * numTilesY;
- const IntSize layerSize(tileSize.width() * numTilesX, tileSize.height() * numTilesY);
- OwnPtr<CCTiledLayerImpl> layer = createLayer(tileSize, layerSize, CCLayerTilingData::NoBorderTexels);
- layer->setBackgroundColor(Color::gray);
- layer->setBackgroundCoversViewport(true);
-
- // No gutter rects
- {
- IntRect clipRect = IntRect(IntPoint(), layerSize);
- layer->setClipRect(clipRect);
- layer->setVisibleLayerRect(IntRect(IntPoint(), layerSize));
-
- OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState();
-
- CCQuadList quads;
- layer->appendQuads(quads, sharedQuadState.get());
- EXPECT_EQ(quads.size(), numTiles);
-
- for (size_t i = 0; i < quads.size(); ++i)
- EXPECT_EQ(quads[i]->material(), CCDrawQuad::TiledContent);
- }
-
- // Empty visible content area (fullscreen gutter rect)
- {
- IntRect clipRect = IntRect(100, 100, 100, 100);
- layer->setClipRect(clipRect);
- layer->setVisibleLayerRect(IntRect());
-
- OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState();
- CCQuadList quads;
- layer->appendQuads(quads, sharedQuadState.get());
-
- for (size_t i = 0; i < quads.size(); ++i)
- EXPECT_EQ(quads[i]->material(), CCDrawQuad::SolidColor);
-
- verifyQuadsExactlyCoverRect(quads, clipRect);
- }
-
- // Content area in middle of clip rect (four surrounding gutter rects)
- {
- IntRect clipRect = IntRect(-50, -50, 100, 100);
- layer->setClipRect(clipRect);
- layer->setVisibleLayerRect(IntRect(IntPoint(), layerSize));
-
- OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState();
- CCQuadList quads;
- layer->appendQuads(quads, sharedQuadState.get());
-
- unsigned numContentTiles = 0, numGutterTiles = 0;
- for (size_t i = 0; i < quads.size(); ++i) {
- if (quads[i]->material() == CCDrawQuad::TiledContent)
- numContentTiles++;
- else if (quads[i]->material() == CCDrawQuad::SolidColor)
- numGutterTiles++;
- }
- EXPECT_EQ(numContentTiles, numTiles);
- EXPECT_GE(numGutterTiles, 4u);
-
- verifyQuadsExactlyCoverRect(quads, clipRect);
- }
-}
-
} // namespace