diff options
author | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-27 20:07:02 +0000 |
---|---|---|
committer | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-27 20:07:02 +0000 |
commit | f8ad8343b4bbe11be3222a0136107a86e1ef3abe (patch) | |
tree | c1f58fa04ceeafc9cb7a3ed1ac9b8d8565d1f3b4 /cc | |
parent | 3094b0e86050dbfb503dabf81e90966f76105e13 (diff) | |
download | chromium_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.cpp | 2 | ||||
-rw-r--r-- | cc/CCLayerTreeHostImpl.cpp | 30 | ||||
-rw-r--r-- | cc/CCLayerTreeHostImplTest.cpp | 2 | ||||
-rw-r--r-- | cc/CCRenderPass.h | 4 | ||||
-rw-r--r-- | cc/CCRendererGLTest.cpp | 4 | ||||
-rw-r--r-- | cc/CCRendererSoftwareTest.cpp | 4 |
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); |