Index: cc/resource_provider.cc |
diff --git a/cc/resource_provider.cc b/cc/resource_provider.cc |
index 8d1ac0b7778606f5f82a528b928911aa751b4f2d..18608de957033df025c8fa5fa61490df2fd017b0 100644 |
--- a/cc/resource_provider.cc |
+++ b/cc/resource_provider.cc |
@@ -109,9 +109,9 @@ CCResourceProvider::Child::~Child() |
{ |
} |
-scoped_ptr<CCResourceProvider> CCResourceProvider::create(CCGraphicsContext* context) |
+scoped_ptr<CCResourceProvider> CCResourceProvider::create(CCGraphicsContext* context, CCProxy* proxy) |
{ |
- scoped_ptr<CCResourceProvider> resourceProvider(new CCResourceProvider(context)); |
+ scoped_ptr<CCResourceProvider> resourceProvider(new CCResourceProvider(context, proxy)); |
if (!resourceProvider->initialize()) |
return scoped_ptr<CCResourceProvider>(); |
return resourceProvider.Pass(); |
@@ -128,13 +128,13 @@ CCResourceProvider::~CCResourceProvider() |
WebGraphicsContext3D* CCResourceProvider::graphicsContext3D() |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
return m_context->context3D(); |
} |
bool CCResourceProvider::inUseByConsumer(ResourceId id) |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
ResourceMap::iterator it = m_resources.find(id); |
CHECK(it != m_resources.end()); |
Resource* resource = &it->second; |
@@ -157,7 +157,7 @@ CCResourceProvider::ResourceId CCResourceProvider::createResource(int pool, cons |
CCResourceProvider::ResourceId CCResourceProvider::createGLTexture(int pool, const IntSize& size, GLenum format, TextureUsageHint hint) |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
unsigned textureId = 0; |
WebGraphicsContext3D* context3d = m_context->context3D(); |
DCHECK(context3d); |
@@ -183,7 +183,7 @@ CCResourceProvider::ResourceId CCResourceProvider::createGLTexture(int pool, con |
CCResourceProvider::ResourceId CCResourceProvider::createBitmap(int pool, const IntSize& size) |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
uint8_t* pixels = new uint8_t[size.width() * size.height() * 4]; |
@@ -195,7 +195,7 @@ CCResourceProvider::ResourceId CCResourceProvider::createBitmap(int pool, const |
CCResourceProvider::ResourceId CCResourceProvider::createResourceFromExternalTexture(unsigned textureId) |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
DCHECK(m_context->context3D()); |
ResourceId id = m_nextId++; |
Resource resource(textureId, 0, IntSize(), 0); |
@@ -206,7 +206,7 @@ CCResourceProvider::ResourceId CCResourceProvider::createResourceFromExternalTex |
void CCResourceProvider::deleteResource(ResourceId id) |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
ResourceMap::iterator it = m_resources.find(id); |
CHECK(it != m_resources.end()); |
Resource* resource = &it->second; |
@@ -237,7 +237,7 @@ void CCResourceProvider::deleteResourceInternal(ResourceMap::iterator it) |
void CCResourceProvider::deleteOwnedResources(int pool) |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
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) |
@@ -257,7 +257,7 @@ CCResourceProvider::ResourceType CCResourceProvider::resourceType(ResourceId id) |
void CCResourceProvider::upload(ResourceId id, const uint8_t* image, const IntRect& imageRect, const IntRect& sourceRect, const IntSize& destOffset) |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
ResourceMap::iterator it = m_resources.find(id); |
CHECK(it != m_resources.end()); |
Resource* resource = &it->second; |
@@ -320,7 +320,7 @@ double CCResourceProvider::estimatedUploadsPerSecond() |
void CCResourceProvider::flush() |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
WebGraphicsContext3D* context3d = m_context->context3D(); |
if (context3d) |
context3d->flush(); |
@@ -328,7 +328,7 @@ void CCResourceProvider::flush() |
bool CCResourceProvider::shallowFlushIfSupported() |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
WebGraphicsContext3D* context3d = m_context->context3D(); |
if (!context3d || !m_useShallowFlush) |
return false; |
@@ -339,7 +339,7 @@ bool CCResourceProvider::shallowFlushIfSupported() |
const CCResourceProvider::Resource* CCResourceProvider::lockForRead(ResourceId id) |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
ResourceMap::iterator it = m_resources.find(id); |
CHECK(it != m_resources.end()); |
@@ -352,7 +352,7 @@ const CCResourceProvider::Resource* CCResourceProvider::lockForRead(ResourceId i |
void CCResourceProvider::unlockForRead(ResourceId id) |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
ResourceMap::iterator it = m_resources.find(id); |
CHECK(it != m_resources.end()); |
Resource* resource = &it->second; |
@@ -363,7 +363,7 @@ void CCResourceProvider::unlockForRead(ResourceId id) |
const CCResourceProvider::Resource* CCResourceProvider::lockForWrite(ResourceId id) |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
ResourceMap::iterator it = m_resources.find(id); |
CHECK(it != m_resources.end()); |
Resource* resource = &it->second; |
@@ -377,7 +377,7 @@ const CCResourceProvider::Resource* CCResourceProvider::lockForWrite(ResourceId |
void CCResourceProvider::unlockForWrite(ResourceId id) |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
ResourceMap::iterator it = m_resources.find(id); |
CHECK(it != m_resources.end()); |
Resource* resource = &it->second; |
@@ -446,8 +446,9 @@ CCResourceProvider::ScopedWriteLockSoftware::~ScopedWriteLockSoftware() |
m_resourceProvider->unlockForWrite(m_resourceId); |
} |
-CCResourceProvider::CCResourceProvider(CCGraphicsContext* context) |
+CCResourceProvider::CCResourceProvider(CCGraphicsContext* context, CCProxy* proxy) |
: m_context(context) |
+ , m_proxy(proxy) |
, m_nextId(1) |
, m_nextChild(1) |
, m_defaultResourceType(GLTexture) |
@@ -460,7 +461,7 @@ CCResourceProvider::CCResourceProvider(CCGraphicsContext* context) |
bool CCResourceProvider::initialize() |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
WebGraphicsContext3D* context3d = m_context->context3D(); |
if (!context3d) { |
m_maxTextureSize = INT_MAX / 2; |
@@ -496,7 +497,7 @@ bool CCResourceProvider::initialize() |
int CCResourceProvider::createChild(int pool) |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
Child childInfo; |
childInfo.pool = pool; |
int child = m_nextChild++; |
@@ -506,7 +507,7 @@ int CCResourceProvider::createChild(int pool) |
void CCResourceProvider::destroyChild(int child) |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
ChildMap::iterator it = m_children.find(child); |
DCHECK(it != m_children.end()); |
deleteOwnedResources(it->second.pool); |
@@ -516,7 +517,7 @@ void CCResourceProvider::destroyChild(int child) |
const CCResourceProvider::ResourceIdMap& CCResourceProvider::getChildToParentMap(int child) const |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
ChildMap::const_iterator it = m_children.find(child); |
DCHECK(it != m_children.end()); |
return it->second.childToParentMap; |
@@ -524,7 +525,7 @@ const CCResourceProvider::ResourceIdMap& CCResourceProvider::getChildToParentMap |
CCResourceProvider::TransferableResourceList CCResourceProvider::prepareSendToParent(const ResourceIdArray& resources) |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
TransferableResourceList list; |
list.syncPoint = 0; |
WebGraphicsContext3D* context3d = m_context->context3D(); |
@@ -546,7 +547,7 @@ CCResourceProvider::TransferableResourceList CCResourceProvider::prepareSendToPa |
CCResourceProvider::TransferableResourceList CCResourceProvider::prepareSendToChild(int child, const ResourceIdArray& resources) |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
TransferableResourceList list; |
list.syncPoint = 0; |
WebGraphicsContext3D* context3d = m_context->context3D(); |
@@ -573,7 +574,7 @@ CCResourceProvider::TransferableResourceList CCResourceProvider::prepareSendToCh |
void CCResourceProvider::receiveFromChild(int child, const TransferableResourceList& resources) |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
WebGraphicsContext3D* context3d = m_context->context3D(); |
if (!context3d || !context3d->makeContextCurrent()) { |
// FIXME: Implement this path for software compositing. |
@@ -605,7 +606,7 @@ void CCResourceProvider::receiveFromChild(int child, const TransferableResourceL |
void CCResourceProvider::receiveFromParent(const TransferableResourceList& resources) |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
WebGraphicsContext3D* context3d = m_context->context3D(); |
if (!context3d || !context3d->makeContextCurrent()) { |
// FIXME: Implement this path for software compositing. |
@@ -629,7 +630,7 @@ void CCResourceProvider::receiveFromParent(const TransferableResourceList& resou |
bool CCResourceProvider::transferResource(WebGraphicsContext3D* context, ResourceId id, TransferableResource* resource) |
{ |
- DCHECK(CCProxy::isImplThread()); |
+ DCHECK(m_proxy->isImplThread()); |
ResourceMap::const_iterator it = m_resources.find(id); |
CHECK(it != m_resources.end()); |
const Resource* source = &it->second; |