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

Unified Diff: cc/resource_provider.cc

Issue 11232051: Remove static thread pointers from CC (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 2 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/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;
« cc/proxy.h ('K') | « cc/resource_provider.h ('k') | cc/single_thread_proxy.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698