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

Unified Diff: cc/CCDirectRenderer.cpp

Issue 10979010: Remove WTF HashMap and PassOwnPtr dependencies for CCRenderPass (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/CCDirectRenderer.h ('k') | cc/CCLayerTreeHostImpl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/CCDirectRenderer.cpp
diff --git a/cc/CCDirectRenderer.cpp b/cc/CCDirectRenderer.cpp
index 1e9df5d8ae3c602969552c45d3adb899975ad2c6..8bf3c4b014eba97e814a8f71235c2e43e479aad1 100644
--- a/cc/CCDirectRenderer.cpp
+++ b/cc/CCDirectRenderer.cpp
@@ -8,6 +8,7 @@
#include "CCMathUtil.h"
#include <public/WebTransformationMatrix.h>
+#include <vector>
using WebKit::WebTransformationMatrix;
@@ -114,34 +115,23 @@ CCDirectRenderer::~CCDirectRenderer()
void CCDirectRenderer::decideRenderPassAllocationsForFrame(const CCRenderPassList& renderPassesInDrawOrder)
{
- HashMap<CCRenderPass::Id, const CCRenderPass*> renderPassesInFrame;
+ base::hash_map<CCRenderPass::Id, const CCRenderPass*> renderPassesInFrame;
for (size_t i = 0; i < renderPassesInDrawOrder.size(); ++i)
- renderPassesInFrame.set(renderPassesInDrawOrder[i]->id(), renderPassesInDrawOrder[i]);
+ renderPassesInFrame.insert(std::pair<CCRenderPass::Id, const CCRenderPass*>(renderPassesInDrawOrder[i]->id(), renderPassesInDrawOrder[i]));
- Vector<CCRenderPass::Id> passesToDelete;
- HashMap<CCRenderPass::Id, OwnPtr<CachedTexture> >::const_iterator passIterator;
+ std::vector<CCRenderPass::Id> passesToDelete;
+ ScopedPtrHashMap<CCRenderPass::Id, CachedTexture>::const_iterator passIterator;
for (passIterator = m_renderPassTextures.begin(); passIterator != m_renderPassTextures.end(); ++passIterator) {
-#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
- const CCRenderPass* renderPassInFrame = renderPassesInFrame.get(passIterator->key);
-#else
- const CCRenderPass* renderPassInFrame = renderPassesInFrame.get(passIterator->first);
-#endif
- if (!renderPassInFrame) {
-#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
- passesToDelete.append(passIterator->key);
-#else
- passesToDelete.append(passIterator->first);
-#endif
+ base::hash_map<CCRenderPass::Id, const CCRenderPass*>::const_iterator it = renderPassesInFrame.find(passIterator->first);
+ if (it == renderPassesInFrame.end()) {
+ passesToDelete.push_back(passIterator->first);
continue;
}
+ const CCRenderPass* renderPassInFrame = it->second;
const IntSize& requiredSize = renderPassTextureSize(renderPassInFrame);
GC3Denum requiredFormat = renderPassTextureFormat(renderPassInFrame);
-#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
- CachedTexture* texture = passIterator->value.get();
-#else
- CachedTexture* texture = passIterator->second.get();
-#endif
+ CachedTexture* texture = passIterator->second;
ASSERT(texture);
if (texture->id() && (texture->size() != requiredSize || texture->format() != requiredFormat))
@@ -150,12 +140,12 @@ void CCDirectRenderer::decideRenderPassAllocationsForFrame(const CCRenderPassLis
// Delete RenderPass textures from the previous frame that will not be used again.
for (size_t i = 0; i < passesToDelete.size(); ++i)
- m_renderPassTextures.remove(passesToDelete[i]);
+ m_renderPassTextures.erase(passesToDelete[i]);
for (size_t i = 0; i < renderPassesInDrawOrder.size(); ++i) {
if (!m_renderPassTextures.contains(renderPassesInDrawOrder[i]->id())) {
- OwnPtr<CachedTexture> texture = CachedTexture::create(m_resourceProvider);
- m_renderPassTextures.set(renderPassesInDrawOrder[i]->id(), texture.release());
+ scoped_ptr<CachedTexture> texture = CachedTexture::create(m_resourceProvider);
+ m_renderPassTextures.set(renderPassesInDrawOrder[i]->id(), texture.Pass());
}
}
}
« no previous file with comments | « cc/CCDirectRenderer.h ('k') | cc/CCLayerTreeHostImpl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698