Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3792)

Unified Diff: cc/CCLayerTreeHostImplTest.cpp

Issue 10917153: Update cc snapshot to r127918 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/CCLayerTreeHostImpl.cpp ('k') | cc/CCLayerTreeHostTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/CCLayerTreeHostImplTest.cpp
diff --git a/cc/CCLayerTreeHostImplTest.cpp b/cc/CCLayerTreeHostImplTest.cpp
index 8dc6752db6be8816cb666ea4d31a116cac496784..e410b2208f6d159a313913a925ff0faba7d82c31 100644
--- a/cc/CCLayerTreeHostImplTest.cpp
+++ b/cc/CCLayerTreeHostImplTest.cpp
@@ -3455,13 +3455,14 @@ TEST_F(CCLayerTreeHostImplTest, textureCachingWithScissor)
grandChild->setDrawsContent(true);
CCTiledLayerImpl* childPtr = child.get();
+ CCRenderPass::Id childPassId(childPtr->id(), 0);
child->addChild(grandChild.release());
root->addChild(child.release());
myHostImpl->setRootLayer(root.release());
myHostImpl->setViewportSize(rootRect.size(), rootRect.size());
- EXPECT_FALSE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(childPtr->id()));
+ EXPECT_FALSE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(childPassId));
{
CCLayerTreeHostImpl::FrameData frame;
@@ -3471,7 +3472,7 @@ TEST_F(CCLayerTreeHostImplTest, textureCachingWithScissor)
}
// We should have cached textures for surface 2.
- EXPECT_TRUE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(childPtr->id()));
+ EXPECT_TRUE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(childPassId));
{
CCLayerTreeHostImpl::FrameData frame;
@@ -3481,7 +3482,7 @@ TEST_F(CCLayerTreeHostImplTest, textureCachingWithScissor)
}
// We should still have cached textures for surface 2 after drawing with no damage.
- EXPECT_TRUE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(childPtr->id()));
+ EXPECT_TRUE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(childPassId));
// Damage a single tile of surface 2.
childPtr->setUpdateRect(IntRect(10, 10, 10, 10));
@@ -3494,7 +3495,7 @@ TEST_F(CCLayerTreeHostImplTest, textureCachingWithScissor)
}
// We should have a cached texture for surface 2 again even though it was damaged.
- EXPECT_TRUE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(childPtr->id()));
+ EXPECT_TRUE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(childPassId));
}
TEST_F(CCLayerTreeHostImplTest, surfaceTextureCaching)
@@ -3856,18 +3857,18 @@ struct RenderPassCacheEntry {
};
struct RenderPassRemovalTestData : public CCLayerTreeHostImpl::FrameData {
- std::map<char, RenderPassCacheEntry> renderPassCache;
+ std::map<CCRenderPass::Id, RenderPassCacheEntry> renderPassCache;
OwnPtr<CCSharedQuadState> sharedQuadState;
};
class CCTestRenderPass: public CCRenderPass {
public:
- static PassOwnPtr<CCRenderPass> create(int id, IntRect outputRect, const WebTransformationMatrix& rootTransform) { return adoptPtr(new CCTestRenderPass(id, outputRect, rootTransform)); }
+ static PassOwnPtr<CCRenderPass> create(CCRenderPass::Id id, IntRect outputRect, const WebTransformationMatrix& rootTransform) { return adoptPtr(new CCTestRenderPass(id, outputRect, rootTransform)); }
void appendQuad(PassOwnPtr<CCDrawQuad> quad) { m_quadList.append(quad); }
protected:
- CCTestRenderPass(int id, IntRect outputRect, const WebTransformationMatrix& rootTransform) : CCRenderPass(id, outputRect, rootTransform) { }
+ CCTestRenderPass(CCRenderPass::Id id, IntRect outputRect, const WebTransformationMatrix& rootTransform) : CCRenderPass(id, outputRect, rootTransform) { }
};
class CCTestRenderer : public CCRendererGL, public CCRendererClient {
@@ -3882,9 +3883,9 @@ public:
}
void clearCachedTextures() { m_textures.clear(); }
- void setHaveCachedResourcesForRenderPassId(int id) { m_textures.add(id); }
+ void setHaveCachedResourcesForRenderPassId(CCRenderPass::Id id) { m_textures.add(id); }
- virtual bool haveCachedResourcesForRenderPassId(int id) const OVERRIDE { return m_textures.contains(id); }
+ virtual bool haveCachedResourcesForRenderPassId(CCRenderPass::Id id) const OVERRIDE { return m_textures.contains(id); }
// CCRendererClient implementation.
virtual const IntSize& deviceViewportSize() const OVERRIDE { return m_viewportSize; }
@@ -3901,7 +3902,7 @@ protected:
private:
CCLayerTreeSettings m_settings;
IntSize m_viewportSize;
- HashSet<int> m_textures;
+ HashSet<CCRenderPass::Id> m_textures;
};
static void configureRenderPassTestData(const char* testScript, RenderPassRemovalTestData& testData, CCTestRenderer* renderer)
@@ -3914,12 +3915,17 @@ static void configureRenderPassTestData(const char* testScript, RenderPassRemova
const char* currentChar = testScript;
// Pre-create root pass
- char rootRenderPassId = testScript[0];
+ CCRenderPass::Id rootRenderPassId = CCRenderPass::Id(testScript[0], testScript[1]);
OwnPtr<CCRenderPass> rootRenderPass = CCTestRenderPass::create(rootRenderPassId, IntRect(), WebTransformationMatrix());
- testData.renderPassCache.insert(std::pair<char, RenderPassCacheEntry>(rootRenderPassId, RenderPassCacheEntry(rootRenderPass.release())));
+ testData.renderPassCache.insert(std::pair<CCRenderPass::Id, RenderPassCacheEntry>(rootRenderPassId, RenderPassCacheEntry(rootRenderPass.release())));
while (*currentChar) {
- char renderPassId = currentChar[0];
+ int layerId = *currentChar;
currentChar++;
+ ASSERT_TRUE(currentChar);
+ int index = *currentChar;
+ currentChar++;
+
+ CCRenderPass::Id renderPassId = CCRenderPass::Id(layerId, index);
OwnPtr<CCRenderPass> renderPass;
@@ -3939,9 +3945,13 @@ static void configureRenderPassTestData(const char* testScript, RenderPassRemova
currentChar++;
} else if ((*currentChar >= 'A') && (*currentChar <= 'Z')) {
// RenderPass draw quad
- char newRenderPassId = *currentChar;
- ASSERT_NE(rootRenderPassId, newRenderPassId);
+ int layerId = *currentChar;
+ currentChar++;
+ ASSERT_TRUE(currentChar);
+ int index = *currentChar;
currentChar++;
+ CCRenderPass::Id newRenderPassId = CCRenderPass::Id(layerId, index);
+ ASSERT_NE(rootRenderPassId, newRenderPassId);
bool hasTexture = false;
bool contentsChanged = true;
@@ -3967,7 +3977,7 @@ static void configureRenderPassTestData(const char* testScript, RenderPassRemova
renderer->setHaveCachedResourcesForRenderPassId(newRenderPassId);
OwnPtr<CCRenderPass> renderPass = CCTestRenderPass::create(newRenderPassId, IntRect(), WebTransformationMatrix());
- testData.renderPassCache.insert(std::pair<char, RenderPassCacheEntry>(newRenderPassId, RenderPassCacheEntry(renderPass.release())));
+ testData.renderPassCache.insert(std::pair<CCRenderPass::Id, RenderPassCacheEntry>(newRenderPassId, RenderPassCacheEntry(renderPass.release())));
}
IntRect quadRect = IntRect(0, 0, 1, 1);
@@ -3988,7 +3998,9 @@ void dumpRenderPassTestData(const RenderPassRemovalTestData& testData, char* buf
char* pos = buffer;
for (CCRenderPassList::const_reverse_iterator it = testData.renderPasses.rbegin(); it != testData.renderPasses.rend(); ++it) {
const CCRenderPass* currentPass = *it;
- *pos = currentPass->id();
+ *pos = currentPass->id().layerId;
+ pos++;
+ *pos = currentPass->id().index;
pos++;
CCQuadList::const_iterator quadListIterator = currentPass->quadList().begin();
@@ -4000,7 +4012,9 @@ void dumpRenderPassTestData(const RenderPassRemovalTestData& testData, char* buf
pos++;
break;
case CCDrawQuad::RenderPass:
- *pos = CCRenderPassDrawQuad::materialCast(currentQuad)->renderPassId();
+ *pos = CCRenderPassDrawQuad::materialCast(currentQuad)->renderPassId().layerId;
+ pos++;
+ *pos = CCRenderPassDrawQuad::materialCast(currentQuad)->renderPassId().index;
pos++;
break;
default:
@@ -4044,115 +4058,115 @@ TestCase removeRenderPassesCases[] =
{
{
"Single root pass",
- "Rssss\n",
- "Rssss\n"
+ "R0ssss\n",
+ "R0ssss\n"
}, {
"Single pass - no quads",
- "R\n",
- "R\n"
+ "R0\n",
+ "R0\n"
}, {
"Two passes, no removal",
- "RssssAsss\n"
- "Assss\n",
- "RssssAsss\n"
- "Assss\n"
+ "R0ssssA0sss\n"
+ "A0ssss\n",
+ "R0ssssA0sss\n"
+ "A0ssss\n"
}, {
"Two passes, remove last",
- "RssssA[ct]sss\n"
- "Assss\n",
- "RssssAsss\n"
+ "R0ssssA0[ct]sss\n"
+ "A0ssss\n",
+ "R0ssssA0sss\n"
}, {
"Have texture but contents changed - leave pass",
- "RssssA[t]sss\n"
- "Assss\n",
- "RssssAsss\n"
- "Assss\n"
+ "R0ssssA0[t]sss\n"
+ "A0ssss\n",
+ "R0ssssA0sss\n"
+ "A0ssss\n"
}, {
"Contents didn't change but no texture - leave pass",
- "RssssA[c]sss\n"
- "Assss\n",
- "RssssAsss\n"
- "Assss\n"
+ "R0ssssA0[c]sss\n"
+ "A0ssss\n",
+ "R0ssssA0sss\n"
+ "A0ssss\n"
}, {
"Replica: two quads reference the same pass; remove",
- "RssssA[ct]A[ct]sss\n"
- "Assss\n",
- "RssssAAsss\n"
+ "R0ssssA0[ct]A0[ct]sss\n"
+ "A0ssss\n",
+ "R0ssssA0A0sss\n"
}, {
"Replica: two quads reference the same pass; leave",
- "RssssA[c]A[c]sss\n"
- "Assss\n",
- "RssssAAsss\n"
- "Assss\n",
+ "R0ssssA0[c]A0[c]sss\n"
+ "A0ssss\n",
+ "R0ssssA0A0sss\n"
+ "A0ssss\n",
}, {
"Many passes, remove all",
- "RssssA[ct]sss\n"
- "AsssB[ct]C[ct]s\n"
- "BsssD[ct]ssE[ct]F[ct]\n"
- "Essssss\n"
- "CG[ct]\n"
- "Dsssssss\n"
- "Fsssssss\n"
- "Gsss\n",
-
- "RssssAsss\n"
+ "R0ssssA0[ct]sss\n"
+ "A0sssB0[ct]C0[ct]s\n"
+ "B0sssD0[ct]ssE0[ct]F0[ct]\n"
+ "E0ssssss\n"
+ "C0G0[ct]\n"
+ "D0sssssss\n"
+ "F0sssssss\n"
+ "G0sss\n",
+
+ "R0ssssA0sss\n"
}, {
"Deep recursion, remove all",
- "RsssssA[ct]ssss\n"
- "AssssBsss\n"
- "BC\n"
- "CD\n"
- "DE\n"
- "EF\n"
- "FG\n"
- "GH\n"
- "HsssIsss\n"
- "IJ\n"
- "Jssss\n",
+ "R0sssssA0[ct]ssss\n"
+ "A0ssssB0sss\n"
+ "B0C0\n"
+ "C0D0\n"
+ "D0E0\n"
+ "E0F0\n"
+ "F0G0\n"
+ "G0H0\n"
+ "H0sssI0sss\n"
+ "I0J0\n"
+ "J0ssss\n",
- "RsssssAssss\n"
+ "R0sssssA0ssss\n"
}, {
"Wide recursion, remove all",
- "RA[ct]B[ct]C[ct]D[ct]E[ct]F[ct]G[ct]H[ct]I[ct]J[ct]\n"
- "As\n"
- "Bs\n"
- "Cssss\n"
- "Dssss\n"
- "Es\n"
- "F\n"
- "Gs\n"
- "Hs\n"
- "Is\n"
- "Jssss\n",
+ "R0A0[ct]B0[ct]C0[ct]D0[ct]E0[ct]F0[ct]G0[ct]H0[ct]I0[ct]J0[ct]\n"
+ "A0s\n"
+ "B0s\n"
+ "C0ssss\n"
+ "D0ssss\n"
+ "E0s\n"
+ "F0\n"
+ "G0s\n"
+ "H0s\n"
+ "I0s\n"
+ "J0ssss\n",
- "RABCDEFGHIJ\n"
+ "R0A0B0C0D0E0F0G0H0I0J0\n"
}, {
"Remove passes regardless of cache state",
- "RssssA[ct]sss\n"
- "AsssBCs\n"
- "BsssD[c]ssE[t]F\n"
- "Essssss\n"
- "CG\n"
- "Dsssssss\n"
- "Fsssssss\n"
- "Gsss\n",
-
- "RssssAsss\n"
+ "R0ssssA0[ct]sss\n"
+ "A0sssB0C0s\n"
+ "B0sssD0[c]ssE0[t]F0\n"
+ "E0ssssss\n"
+ "C0G0\n"
+ "D0sssssss\n"
+ "F0sssssss\n"
+ "G0sss\n",
+
+ "R0ssssA0sss\n"
}, {
"Leave some passes, remove others",
- "RssssA[c]sss\n"
- "AsssB[t]C[ct]s\n"
- "BsssD[c]ss\n"
- "CG\n"
- "Dsssssss\n"
- "Gsss\n",
-
- "RssssAsss\n"
- "AsssBCs\n"
- "BsssDss\n"
- "Dsssssss\n"
+ "R0ssssA0[c]sss\n"
+ "A0sssB0[t]C0[ct]s\n"
+ "B0sssD0[c]ss\n"
+ "C0G0\n"
+ "D0sssssss\n"
+ "G0sss\n",
+
+ "R0ssssA0sss\n"
+ "A0sssB0C0s\n"
+ "B0sssD0ss\n"
+ "D0sssssss\n"
}, {
0, 0, 0
}
« no previous file with comments | « cc/CCLayerTreeHostImpl.cpp ('k') | cc/CCLayerTreeHostTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698