summaryrefslogtreecommitdiffstats
path: root/cc
diff options
context:
space:
mode:
authordanakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-27 20:07:02 +0000
committerdanakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-27 20:07:02 +0000
commitf8ad8343b4bbe11be3222a0136107a86e1ef3abe (patch)
treec1f58fa04ceeafc9cb7a3ed1ac9b8d8565d1f3b4 /cc
parent3094b0e86050dbfb503dabf81e90966f76105e13 (diff)
downloadchromium_src-f8ad8343b4bbe11be3222a0136107a86e1ef3abe.zip
chromium_src-f8ad8343b4bbe11be3222a0136107a86e1ef3abe.tar.gz
chromium_src-f8ad8343b4bbe11be3222a0136107a86e1ef3abe.tar.bz2
cc: Remove the WTF::Vector dependency from CCRenderPass.
Replace the use of Vector with std::vector instead. Covered by existing tests. BUG=152049 Review URL: https://codereview.chromium.org/10989026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@159098 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc')
-rw-r--r--cc/CCDirectRenderer.cpp2
-rw-r--r--cc/CCLayerTreeHostImpl.cpp30
-rw-r--r--cc/CCLayerTreeHostImplTest.cpp2
-rw-r--r--cc/CCRenderPass.h4
-rw-r--r--cc/CCRendererGLTest.cpp4
-rw-r--r--cc/CCRendererSoftwareTest.cpp4
6 files changed, 25 insertions, 21 deletions
diff --git a/cc/CCDirectRenderer.cpp b/cc/CCDirectRenderer.cpp
index 8bf3c4b..23fa1d3 100644
--- a/cc/CCDirectRenderer.cpp
+++ b/cc/CCDirectRenderer.cpp
@@ -152,7 +152,7 @@ void CCDirectRenderer::decideRenderPassAllocationsForFrame(const CCRenderPassLis
void CCDirectRenderer::drawFrame(const CCRenderPassList& renderPassesInDrawOrder, const CCRenderPassIdHashMap& renderPassesById)
{
- const CCRenderPass* rootRenderPass = renderPassesInDrawOrder.last();
+ const CCRenderPass* rootRenderPass = renderPassesInDrawOrder.back();
ASSERT(rootRenderPass);
DrawingFrame frame;
diff --git a/cc/CCLayerTreeHostImpl.cpp b/cc/CCLayerTreeHostImpl.cpp
index 4793482..46a8e0a 100644
--- a/cc/CCLayerTreeHostImpl.cpp
+++ b/cc/CCLayerTreeHostImpl.cpp
@@ -30,6 +30,7 @@
#include "CCSingleThreadProxy.h"
#include "TraceEvent.h"
#include <wtf/CurrentTime.h>
+#include <algorithm>
using WebKit::WebTransformationMatrix;
@@ -252,13 +253,13 @@ void CCLayerTreeHostImpl::calculateRenderSurfaceLayerList(CCLayerList& renderSur
void CCLayerTreeHostImpl::FrameData::appendRenderPass(scoped_ptr<CCRenderPass> renderPass)
{
CCRenderPass* pass = renderPass.get();
- renderPasses.append(pass);
+ renderPasses.push_back(pass);
renderPassesById.set(pass->id(), renderPass.Pass());
}
bool CCLayerTreeHostImpl::calculateRenderPasses(FrameData& frame)
{
- ASSERT(frame.renderPasses.isEmpty());
+ ASSERT(!frame.renderPasses.size());
calculateRenderSurfaceLayerList(*frame.renderSurfaceLayerList);
@@ -343,8 +344,8 @@ bool CCLayerTreeHostImpl::calculateRenderPasses(FrameData& frame)
#endif
if (!m_hasTransparentBackground) {
- frame.renderPasses.last()->setHasTransparentBackground(false);
- frame.renderPasses.last()->appendQuadsToFillScreen(m_rootLayerImpl.get(), m_backgroundColor, occlusionTracker);
+ frame.renderPasses.back()->setHasTransparentBackground(false);
+ frame.renderPasses.back()->appendQuadsToFillScreen(m_rootLayerImpl.get(), m_backgroundColor, occlusionTracker);
}
if (drawFrame)
@@ -413,14 +414,15 @@ static inline CCRenderPass* findRenderPassById(CCRenderPass::Id renderPassId, co
static void removeRenderPassesRecursive(CCRenderPass::Id removeRenderPassId, CCLayerTreeHostImpl::FrameData& frame)
{
CCRenderPass* removeRenderPass = findRenderPassById(removeRenderPassId, frame);
- size_t removeIndex = frame.renderPasses.find(removeRenderPass);
+ CCRenderPassList& renderPasses = frame.renderPasses;
+ CCRenderPassList::iterator toRemove = std::find(renderPasses.begin(), renderPasses.end(), removeRenderPass);
// The pass was already removed by another quad - probably the original, and we are the replica.
- if (removeIndex == notFound)
+ if (toRemove == renderPasses.end())
return;
- const CCRenderPass* removedPass = frame.renderPasses[removeIndex];
- frame.renderPasses.remove(removeIndex);
+ const CCRenderPass* removedPass = *toRemove;
+ frame.renderPasses.erase(toRemove);
// Now follow up for all RenderPass quads and remove their RenderPasses recursively.
const CCQuadList& quadList = removedPass->quadList();
@@ -443,14 +445,15 @@ bool CCLayerTreeHostImpl::CullRenderPassesWithCachedTextures::shouldRemoveRender
bool CCLayerTreeHostImpl::CullRenderPassesWithNoQuads::shouldRemoveRenderPass(const CCRenderPassDrawQuad& quad, const FrameData& frame) const
{
const CCRenderPass* renderPass = findRenderPassById(quad.renderPassId(), frame);
- size_t passIndex = frame.renderPasses.find(renderPass);
+ const CCRenderPassList& renderPasses = frame.renderPasses;
+ CCRenderPassList::const_iterator foundPass = std::find(renderPasses.begin(), renderPasses.end(), renderPass);
- bool renderPassAlreadyRemoved = passIndex == notFound;
+ bool renderPassAlreadyRemoved = foundPass == renderPasses.end();
if (renderPassAlreadyRemoved)
return false;
// If any quad or RenderPass draws into this RenderPass, then keep it.
- const CCQuadList& quadList = frame.renderPasses[passIndex]->quadList();
+ const CCQuadList& quadList = (*foundPass)->quadList();
for (CCQuadList::constBackToFrontIterator quadListIterator = quadList.backToFrontBegin(); quadListIterator != quadList.backToFrontEnd(); ++quadListIterator) {
CCDrawQuad* currentQuad = *quadListIterator;
@@ -458,7 +461,8 @@ bool CCLayerTreeHostImpl::CullRenderPassesWithNoQuads::shouldRemoveRenderPass(co
return false;
const CCRenderPass* contributingPass = findRenderPassById(CCRenderPassDrawQuad::materialCast(currentQuad)->renderPassId(), frame);
- if (frame.renderPasses.contains(contributingPass))
+ CCRenderPassList::const_iterator foundContributingPass = std::find(renderPasses.begin(), renderPasses.end(), contributingPass);
+ if (foundContributingPass != renderPasses.end())
return false;
}
return true;
@@ -547,7 +551,7 @@ void CCLayerTreeHostImpl::drawLayers(const FrameData& frame)
{
TRACE_EVENT0("cc", "CCLayerTreeHostImpl::drawLayers");
ASSERT(canDraw());
- ASSERT(!frame.renderPasses.isEmpty());
+ ASSERT(frame.renderPasses.size());
// FIXME: use the frame begin time from the overall compositor scheduler.
// This value is currently inaccessible because it is up in Chromium's
diff --git a/cc/CCLayerTreeHostImplTest.cpp b/cc/CCLayerTreeHostImplTest.cpp
index 4c72ece..c71f337 100644
--- a/cc/CCLayerTreeHostImplTest.cpp
+++ b/cc/CCLayerTreeHostImplTest.cpp
@@ -4039,7 +4039,7 @@ static void configureRenderPassTestData(const char* testScript, RenderPassRemova
static_cast<CCTestRenderPass*>(renderPass.get())->appendQuad(quad.PassAs<CCDrawQuad>());
}
}
- testData.renderPasses.insert(0, renderPass.get());
+ testData.renderPasses.insert(testData.renderPasses.begin(), renderPass.get());
testData.renderPassesById.add(renderPassId, renderPass.Pass());
if (*currentChar)
currentChar++;
diff --git a/cc/CCRenderPass.h b/cc/CCRenderPass.h
index a6c92529..eb509c8 100644
--- a/cc/CCRenderPass.h
+++ b/cc/CCRenderPass.h
@@ -15,7 +15,7 @@
#include "cc/scoped_ptr_vector.h"
#include <public/WebFilterOperations.h>
#include <public/WebTransformationMatrix.h>
-#include <wtf/Vector.h>
+#include <vector>
namespace cc {
@@ -128,7 +128,7 @@ struct hash<cc::CCRenderPass::Id> {
}
namespace cc {
-typedef Vector<CCRenderPass*> CCRenderPassList;
+typedef std::vector<CCRenderPass*> CCRenderPassList;
typedef ScopedPtrHashMap<CCRenderPass::Id, CCRenderPass> CCRenderPassIdHashMap;
} // namespace cc
diff --git a/cc/CCRendererGLTest.cpp b/cc/CCRendererGLTest.cpp
index 0f8ba3c..f61f215 100644
--- a/cc/CCRendererGLTest.cpp
+++ b/cc/CCRendererGLTest.cpp
@@ -64,7 +64,7 @@ public:
m_rootLayer->createRenderSurface();
CCRenderPass::Id renderPassId = m_rootLayer->renderSurface()->renderPassId();
scoped_ptr<CCRenderPass> rootRenderPass = CCRenderPass::create(renderPassId, IntRect(), WebTransformationMatrix());
- m_renderPassesInDrawOrder.append(rootRenderPass.get());
+ m_renderPassesInDrawOrder.push_back(rootRenderPass.get());
m_renderPasses.set(renderPassId, rootRenderPass.Pass());
}
@@ -80,7 +80,7 @@ public:
// Methods added for test.
int setFullRootLayerDamageCount() const { return m_setFullRootLayerDamageCount; }
- CCRenderPass* rootRenderPass() { return m_renderPassesInDrawOrder.last(); }
+ CCRenderPass* rootRenderPass() { return m_renderPassesInDrawOrder.back(); }
const CCRenderPassList& renderPassesInDrawOrder() const { return m_renderPassesInDrawOrder; }
const CCRenderPassIdHashMap& renderPasses() const { return m_renderPasses; }
diff --git a/cc/CCRendererSoftwareTest.cpp b/cc/CCRendererSoftwareTest.cpp
index cacd017..48b98e7 100644
--- a/cc/CCRendererSoftwareTest.cpp
+++ b/cc/CCRendererSoftwareTest.cpp
@@ -84,7 +84,7 @@ TEST_F(CCRendererSoftwareTest, solidColorQuad)
CCRenderPassList list;
CCRenderPassIdHashMap hashmap;
- list.append(rootRenderPass.get());
+ list.push_back(rootRenderPass.get());
hashmap.add(rootRenderPassId, rootRenderPass.Pass());
renderer()->drawFrame(list, hashmap);
@@ -136,7 +136,7 @@ TEST_F(CCRendererSoftwareTest, tileQuad)
CCRenderPassList list;
CCRenderPassIdHashMap hashmap;
- list.append(rootRenderPass.get());
+ list.push_back(rootRenderPass.get());
hashmap.add(rootRenderPassId, rootRenderPass.Pass());
renderer()->drawFrame(list, hashmap);