| 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;
|
|
|