Index: cc/CCTiledLayerImplTest.cpp |
diff --git a/cc/CCTiledLayerImplTest.cpp b/cc/CCTiledLayerImplTest.cpp |
deleted file mode 100644 |
index cb58ed2184ad05a97910aed2cbc0d1a86b7077d2..0000000000000000000000000000000000000000 |
--- a/cc/CCTiledLayerImplTest.cpp |
+++ /dev/null |
@@ -1,244 +0,0 @@ |
-// Copyright 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "config.h" |
- |
-#include "CCTiledLayerImpl.h" |
- |
-#include "CCAppendQuadsData.h" |
-#include "CCLayerTestCommon.h" |
-#include "CCLayerTilingData.h" |
-#include "CCSingleThreadProxy.h" |
-#include "CCTileDrawQuad.h" |
-#include "MockCCQuadCuller.h" |
-#include "testing/gmock/include/gmock/gmock.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-using namespace cc; |
-using namespace CCLayerTestCommon; |
- |
-namespace { |
- |
-// Create a default tiled layer with textures for all tiles and a default |
-// visibility of the entire layer size. |
-static scoped_ptr<CCTiledLayerImpl> createLayer(const IntSize& tileSize, const IntSize& layerSize, CCLayerTilingData::BorderTexelOption borderTexels) |
-{ |
- scoped_ptr<CCTiledLayerImpl> layer = CCTiledLayerImpl::create(1); |
- OwnPtr<CCLayerTilingData> tiler = CCLayerTilingData::create(tileSize, borderTexels); |
- tiler->setBounds(layerSize); |
- layer->setTilingData(*tiler); |
- layer->setSkipsDraw(false); |
- layer->setVisibleContentRect(IntRect(IntPoint(), layerSize)); |
- layer->setDrawOpacity(1); |
- layer->setBounds(layerSize); |
- layer->setContentBounds(layerSize); |
- layer->createRenderSurface(); |
- layer->setRenderTarget(layer.get()); |
- |
- CCResourceProvider::ResourceId resourceId = 1; |
- for (int i = 0; i < tiler->numTilesX(); ++i) |
- for (int j = 0; j < tiler->numTilesY(); ++j) |
- layer->pushTileProperties(i, j, resourceId++, IntRect(0, 0, 1, 1)); |
- |
- return layer.Pass(); |
-} |
- |
-TEST(CCTiledLayerImplTest, emptyQuadList) |
-{ |
- DebugScopedSetImplThread scopedImplThread; |
- |
- const IntSize tileSize(90, 90); |
- const int numTilesX = 8; |
- const int numTilesY = 4; |
- const IntSize layerSize(tileSize.width() * numTilesX, tileSize.height() * numTilesY); |
- |
- // Verify default layer does creates quads |
- { |
- scoped_ptr<CCTiledLayerImpl> layer = createLayer(tileSize, layerSize, CCLayerTilingData::NoBorderTexels); |
- MockCCQuadCuller quadCuller; |
- CCAppendQuadsData data; |
- layer->appendQuads(quadCuller, data); |
- const unsigned numTiles = numTilesX * numTilesY; |
- EXPECT_EQ(quadCuller.quadList().size(), numTiles); |
- } |
- |
- // Layer with empty visible layer rect produces no quads |
- { |
- scoped_ptr<CCTiledLayerImpl> layer = createLayer(tileSize, layerSize, CCLayerTilingData::NoBorderTexels); |
- layer->setVisibleContentRect(IntRect()); |
- |
- MockCCQuadCuller quadCuller; |
- CCAppendQuadsData data; |
- layer->appendQuads(quadCuller, data); |
- EXPECT_EQ(quadCuller.quadList().size(), 0u); |
- } |
- |
- // Layer with non-intersecting visible layer rect produces no quads |
- { |
- scoped_ptr<CCTiledLayerImpl> layer = createLayer(tileSize, layerSize, CCLayerTilingData::NoBorderTexels); |
- |
- IntRect outsideBounds(IntPoint(-100, -100), IntSize(50, 50)); |
- layer->setVisibleContentRect(outsideBounds); |
- |
- MockCCQuadCuller quadCuller; |
- CCAppendQuadsData data; |
- layer->appendQuads(quadCuller, data); |
- EXPECT_EQ(quadCuller.quadList().size(), 0u); |
- } |
- |
- // Layer with skips draw produces no quads |
- { |
- scoped_ptr<CCTiledLayerImpl> layer = createLayer(tileSize, layerSize, CCLayerTilingData::NoBorderTexels); |
- layer->setSkipsDraw(true); |
- |
- MockCCQuadCuller quadCuller; |
- CCAppendQuadsData data; |
- layer->appendQuads(quadCuller, data); |
- EXPECT_EQ(quadCuller.quadList().size(), 0u); |
- } |
-} |
- |
-TEST(CCTiledLayerImplTest, checkerboarding) |
-{ |
- DebugScopedSetImplThread scopedImplThread; |
- |
- const IntSize tileSize(10, 10); |
- const int numTilesX = 2; |
- const int numTilesY = 2; |
- const IntSize layerSize(tileSize.width() * numTilesX, tileSize.height() * numTilesY); |
- |
- scoped_ptr<CCTiledLayerImpl> layer = createLayer(tileSize, layerSize, CCLayerTilingData::NoBorderTexels); |
- |
- // No checkerboarding |
- { |
- MockCCQuadCuller quadCuller; |
- CCAppendQuadsData data; |
- layer->appendQuads(quadCuller, data); |
- EXPECT_EQ(quadCuller.quadList().size(), 4u); |
- EXPECT_FALSE(data.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) |
- for (int j = 0; j < numTilesY; ++j) |
- layer->pushTileProperties(i, j, 0, IntRect()); |
- |
- // All checkerboarding |
- { |
- MockCCQuadCuller quadCuller; |
- CCAppendQuadsData data; |
- layer->appendQuads(quadCuller, data); |
- EXPECT_TRUE(data.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); |
- } |
-} |
- |
-static void getQuads(CCQuadList& quads, CCSharedQuadStateList& sharedStates, IntSize tileSize, const IntSize& layerSize, CCLayerTilingData::BorderTexelOption borderTexelOption, const IntRect& visibleContentRect) |
-{ |
- scoped_ptr<CCTiledLayerImpl> layer = createLayer(tileSize, layerSize, borderTexelOption); |
- layer->setVisibleContentRect(visibleContentRect); |
- layer->setBounds(layerSize); |
- |
- MockCCQuadCuller quadCuller(quads, sharedStates); |
- CCAppendQuadsData data; |
- layer->appendQuads(quadCuller, data); |
-} |
- |
-// Test with both border texels and without. |
-#define WITH_AND_WITHOUT_BORDER_TEST(testFixtureName) \ |
- TEST(CCTiledLayerImplTest, testFixtureName##NoBorders) \ |
- { \ |
- testFixtureName(CCLayerTilingData::NoBorderTexels); \ |
- } \ |
- TEST(CCTiledLayerImplTest, testFixtureName##HasBorders) \ |
- { \ |
- testFixtureName(CCLayerTilingData::HasBorderTexels);\ |
- } |
- |
-static void coverageVisibleRectOnTileBoundaries(CCLayerTilingData::BorderTexelOption borders) |
-{ |
- DebugScopedSetImplThread scopedImplThread; |
- |
- IntSize layerSize(1000, 1000); |
- CCQuadList quads; |
- CCSharedQuadStateList sharedStates; |
- getQuads(quads, sharedStates, IntSize(100, 100), layerSize, borders, IntRect(IntPoint(), layerSize)); |
- verifyQuadsExactlyCoverRect(quads, IntRect(IntPoint(), layerSize)); |
-} |
-WITH_AND_WITHOUT_BORDER_TEST(coverageVisibleRectOnTileBoundaries); |
- |
-static void coverageVisibleRectIntersectsTiles(CCLayerTilingData::BorderTexelOption borders) |
-{ |
- DebugScopedSetImplThread scopedImplThread; |
- |
- // This rect intersects the middle 3x3 of the 5x5 tiles. |
- IntPoint topLeft(65, 73); |
- IntPoint bottomRight(182, 198); |
- IntRect visibleContentRect(topLeft, bottomRight - topLeft); |
- |
- IntSize layerSize(250, 250); |
- CCQuadList quads; |
- CCSharedQuadStateList sharedStates; |
- getQuads(quads, sharedStates, IntSize(50, 50), IntSize(250, 250), CCLayerTilingData::NoBorderTexels, visibleContentRect); |
- verifyQuadsExactlyCoverRect(quads, visibleContentRect); |
-} |
-WITH_AND_WITHOUT_BORDER_TEST(coverageVisibleRectIntersectsTiles); |
- |
-static void coverageVisibleRectIntersectsBounds(CCLayerTilingData::BorderTexelOption borders) |
-{ |
- DebugScopedSetImplThread scopedImplThread; |
- |
- IntSize layerSize(220, 210); |
- IntRect visibleContentRect(IntPoint(), layerSize); |
- CCQuadList quads; |
- CCSharedQuadStateList sharedStates; |
- getQuads(quads, sharedStates, IntSize(100, 100), layerSize, CCLayerTilingData::NoBorderTexels, visibleContentRect); |
- verifyQuadsExactlyCoverRect(quads, visibleContentRect); |
-} |
-WITH_AND_WITHOUT_BORDER_TEST(coverageVisibleRectIntersectsBounds); |
- |
-TEST(CCTiledLayerImplTest, textureInfoForLayerNoBorders) |
-{ |
- DebugScopedSetImplThread scopedImplThread; |
- |
- IntSize tileSize(50, 50); |
- IntSize layerSize(250, 250); |
- CCQuadList quads; |
- CCSharedQuadStateList sharedStates; |
- getQuads(quads, sharedStates, tileSize, layerSize, CCLayerTilingData::NoBorderTexels, IntRect(IntPoint(), layerSize)); |
- |
- for (size_t i = 0; i < quads.size(); ++i) { |
- ASSERT_EQ(quads[i]->material(), CCDrawQuad::TiledContent) << quadString << i; |
- CCTileDrawQuad* quad = static_cast<CCTileDrawQuad*>(quads[i]); |
- |
- EXPECT_NE(quad->resourceId(), 0u) << quadString << i; |
- EXPECT_EQ(quad->textureOffset(), IntPoint()) << quadString << i; |
- EXPECT_EQ(quad->textureSize(), tileSize) << quadString << i; |
- EXPECT_EQ(IntRect(0, 0, 1, 1), quad->opaqueRect()) << quadString << i; |
- } |
-} |
- |
-TEST(CCTiledLayerImplTest, tileOpaqueRectForLayerNoBorders) |
-{ |
- DebugScopedSetImplThread scopedImplThread; |
- |
- IntSize tileSize(50, 50); |
- IntSize layerSize(250, 250); |
- CCQuadList quads; |
- CCSharedQuadStateList sharedStates; |
- getQuads(quads, sharedStates, tileSize, layerSize, CCLayerTilingData::NoBorderTexels, IntRect(IntPoint(), layerSize)); |
- |
- for (size_t i = 0; i < quads.size(); ++i) { |
- ASSERT_EQ(quads[i]->material(), CCDrawQuad::TiledContent) << quadString << i; |
- CCTileDrawQuad* quad = static_cast<CCTileDrawQuad*>(quads[i]); |
- |
- EXPECT_EQ(IntRect(0, 0, 1, 1), quad->opaqueRect()) << quadString << i; |
- } |
-} |
- |
-} // namespace |