Index: cc/resource_provider.cc |
diff --git a/cc/resource_provider.cc b/cc/resource_provider.cc |
index 2cd7b4ce7f65bea623d8d2a067c5ddc2e159cadc..980a6851300fdc42cbe98ac696dca5d2070a2824 100644 |
--- a/cc/resource_provider.cc |
+++ b/cc/resource_provider.cc |
@@ -54,7 +54,6 @@ ResourceProvider::Resource::Resource() |
, glUploadQueryId(0) |
, pixels(0) |
, pixelBuffer(0) |
- , pool(0) |
, lockForReadCount(0) |
, lockedForWrite(false) |
, external(false) |
@@ -68,13 +67,12 @@ ResourceProvider::Resource::Resource() |
{ |
} |
-ResourceProvider::Resource::Resource(unsigned textureId, int pool, const gfx::Size& size, GLenum format, GLenum filter) |
+ResourceProvider::Resource::Resource(unsigned textureId, const gfx::Size& size, GLenum format, GLenum filter) |
: glId(textureId) |
, glPixelBufferId(0) |
, glUploadQueryId(0) |
, pixels(0) |
, pixelBuffer(0) |
- , pool(pool) |
, lockForReadCount(0) |
, lockedForWrite(false) |
, external(false) |
@@ -88,13 +86,12 @@ ResourceProvider::Resource::Resource(unsigned textureId, int pool, const gfx::Si |
{ |
} |
-ResourceProvider::Resource::Resource(uint8_t* pixels, int pool, const gfx::Size& size, GLenum format, GLenum filter) |
+ResourceProvider::Resource::Resource(uint8_t* pixels, const gfx::Size& size, GLenum format, GLenum filter) |
: glId(0) |
, glPixelBufferId(0) |
, glUploadQueryId(0) |
, pixels(pixels) |
, pixelBuffer(0) |
- , pool(pool) |
, lockForReadCount(0) |
, lockedForWrite(false) |
, external(false) |
@@ -148,21 +145,21 @@ bool ResourceProvider::inUseByConsumer(ResourceId id) |
return !!resource->lockForReadCount || resource->exported; |
} |
-ResourceProvider::ResourceId ResourceProvider::createResource(int pool, const gfx::Size& size, GLenum format, TextureUsageHint hint) |
+ResourceProvider::ResourceId ResourceProvider::createResource(const gfx::Size& size, GLenum format, TextureUsageHint hint) |
{ |
switch (m_defaultResourceType) { |
case GLTexture: |
- return createGLTexture(pool, size, format, hint); |
+ return createGLTexture(size, format, hint); |
case Bitmap: |
DCHECK(format == GL_RGBA); |
- return createBitmap(pool, size); |
+ return createBitmap(size); |
} |
LOG(FATAL) << "Invalid default resource type."; |
return 0; |
} |
-ResourceProvider::ResourceId ResourceProvider::createGLTexture(int pool, const gfx::Size& size, GLenum format, TextureUsageHint hint) |
+ResourceProvider::ResourceId ResourceProvider::createGLTexture(const gfx::Size& size, GLenum format, TextureUsageHint hint) |
{ |
DCHECK_LE(size.width(), m_maxTextureSize); |
DCHECK_LE(size.height(), m_maxTextureSize); |
@@ -187,19 +184,19 @@ ResourceProvider::ResourceId ResourceProvider::createGLTexture(int pool, const g |
GLC(context3d, context3d->texImage2D(GL_TEXTURE_2D, 0, format, size.width(), size.height(), 0, format, GL_UNSIGNED_BYTE, 0)); |
ResourceId id = m_nextId++; |
- Resource resource(textureId, pool, size, format, GL_LINEAR); |
+ Resource resource(textureId, size, format, GL_LINEAR); |
m_resources[id] = resource; |
return id; |
} |
-ResourceProvider::ResourceId ResourceProvider::createBitmap(int pool, const gfx::Size& size) |
+ResourceProvider::ResourceId ResourceProvider::createBitmap(const gfx::Size& size) |
{ |
DCHECK(m_threadChecker.CalledOnValidThread()); |
uint8_t* pixels = new uint8_t[size.width() * size.height() * 4]; |
ResourceId id = m_nextId++; |
- Resource resource(pixels, pool, size, GL_RGBA, GL_LINEAR); |
+ Resource resource(pixels, size, GL_RGBA, GL_LINEAR); |
m_resources[id] = resource; |
return id; |
} |
@@ -217,7 +214,7 @@ ResourceProvider::ResourceId ResourceProvider::createResourceFromExternalTexture |
GLC(context3d, context3d->texParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE)); |
ResourceId id = m_nextId++; |
- Resource resource(textureId, 0, gfx::Size(), 0, GL_LINEAR); |
+ Resource resource(textureId, gfx::Size(), 0, GL_LINEAR); |
resource.external = true; |
m_resources[id] = resource; |
return id; |
@@ -266,18 +263,6 @@ void ResourceProvider::deleteResourceInternal(ResourceMap::iterator it) |
m_resources.erase(it); |
} |
-void ResourceProvider::deleteOwnedResources(int pool) |
-{ |
- DCHECK(m_threadChecker.CalledOnValidThread()); |
- ResourceIdArray toDelete; |
- for (ResourceMap::iterator it = m_resources.begin(); it != m_resources.end(); ++it) { |
- if (it->second.pool == pool && !it->second.external && !it->second.markedForDeletion) |
- toDelete.push_back(it->first); |
- } |
- for (ResourceIdArray::iterator it = toDelete.begin(); it != toDelete.end(); ++it) |
- deleteResource(*it); |
-} |
- |
ResourceProvider::ResourceType ResourceProvider::resourceType(ResourceId id) |
{ |
ResourceMap::iterator it = m_resources.find(id); |
@@ -545,22 +530,23 @@ bool ResourceProvider::initialize() |
return true; |
} |
-int ResourceProvider::createChild(int pool) |
+int ResourceProvider::createChild() |
{ |
DCHECK(m_threadChecker.CalledOnValidThread()); |
Child childInfo; |
- childInfo.pool = pool; |
int child = m_nextChild++; |
m_children[child] = childInfo; |
return child; |
} |
-void ResourceProvider::destroyChild(int child) |
+void ResourceProvider::destroyChild(int child_id) |
{ |
DCHECK(m_threadChecker.CalledOnValidThread()); |
- ChildMap::iterator it = m_children.find(child); |
+ ChildMap::iterator it = m_children.find(child_id); |
DCHECK(it != m_children.end()); |
- deleteOwnedResources(it->second.pool); |
+ Child& child = it->second; |
+ for (ResourceIdMap::iterator child_it = child.childToParentMap.begin(); child_it != child.childToParentMap.end(); ++child_it) |
+ deleteResource(child_it->second); |
m_children.erase(it); |
} |
@@ -643,7 +629,7 @@ void ResourceProvider::receiveFromChild(int child, const TransferableResourceLis |
GLC(context3d, context3d->bindTexture(GL_TEXTURE_2D, textureId)); |
GLC(context3d, context3d->consumeTextureCHROMIUM(GL_TEXTURE_2D, it->mailbox.name)); |
ResourceId id = m_nextId++; |
- Resource resource(textureId, childInfo.pool, it->size, it->format, it->filter); |
+ Resource resource(textureId, it->size, it->format, it->filter); |
resource.mailbox.setName(it->mailbox.name); |
m_resources[id] = resource; |
childInfo.parentToChildMap[id] = it->id; |