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

Unified Diff: cc/CCLayerTreeHostImpl.cpp

Issue 10989028: cc: Remove WebCore dependecies from CCRenderPass and CCDrawQuad classes. (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
Index: cc/CCLayerTreeHostImpl.cpp
diff --git a/cc/CCLayerTreeHostImpl.cpp b/cc/CCLayerTreeHostImpl.cpp
index 93c9dd301d22bb4604076e1e7d91695daf00b883..ca659bcc55371d9035a8c82adbed431071b478ca 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,7 +253,7 @@ 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());
}
@@ -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,16 @@ 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;
+ size_t removeIndex = std::distance(renderPasses.begin(), toRemove);
const CCRenderPass* removedPass = frame.renderPasses[removeIndex];
- frame.renderPasses.remove(removeIndex);
+ frame.renderPasses.erase(toRemove);
// Now follow up for all RenderPass quads and remove their RenderPasses recursively.
const CCQuadList& quadList = removedPass->quadList();
@@ -443,9 +446,11 @@ 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;
+ size_t passIndex = std::distance(renderPasses.begin(), foundPass);
+ bool renderPassAlreadyRemoved = foundPass == renderPasses.end();
if (renderPassAlreadyRemoved)
return false;
@@ -458,7 +463,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;

Powered by Google App Engine
This is Rietveld 408576698