| Index: cc/CCPrioritizedTexture.cpp
|
| diff --git a/cc/CCPrioritizedTexture.cpp b/cc/CCPrioritizedTexture.cpp
|
| index 270ceba292b5906d5fa4d939cc05dbb0180bd370..2940e925227420bcf189cb22b1b853115003d336 100644
|
| --- a/cc/CCPrioritizedTexture.cpp
|
| +++ b/cc/CCPrioritizedTexture.cpp
|
| @@ -69,6 +69,11 @@ bool CCPrioritizedTexture::requestLate()
|
| return m_manager->requestLate(this);
|
| }
|
|
|
| +bool CCPrioritizedTexture::backingResourceWasEvicted() const
|
| +{
|
| + return m_backing ? m_backing->resourceHasBeenDeleted() : false;
|
| +}
|
| +
|
| void CCPrioritizedTexture::acquireBackingTexture(CCResourceProvider* resourceProvider)
|
| {
|
| ASSERT(m_isAbovePriorityCutoff);
|
| @@ -120,18 +125,42 @@ void CCPrioritizedTexture::setToSelfManagedMemoryPlaceholder(size_t bytes)
|
| m_bytes = bytes;
|
| }
|
|
|
| -CCPrioritizedTexture::Backing::Backing(unsigned id, IntSize size, GC3Denum format)
|
| +CCPrioritizedTexture::Backing::Backing(unsigned id, CCResourceProvider* resourceProvider, IntSize size, GC3Denum format)
|
| : CCTexture(id, size, format)
|
| , m_owner(0)
|
| , m_priorityAtLastPriorityUpdate(CCPriorityCalculator::lowestPriority())
|
| , m_ownerExistedAtLastPriorityUpdate(false)
|
| , m_wasAbovePriorityCutoffAtLastPriorityUpdate(false)
|
| + , m_resourceHasBeenDeleted(false)
|
| +#ifndef NDEBUG
|
| + , m_resourceProvider(resourceProvider)
|
| +#endif
|
| {
|
| }
|
|
|
| CCPrioritizedTexture::Backing::~Backing()
|
| {
|
| ASSERT(!m_owner);
|
| + ASSERT(m_resourceHasBeenDeleted);
|
| +}
|
| +
|
| +void CCPrioritizedTexture::Backing::deleteResource(CCResourceProvider* resourceProvider)
|
| +{
|
| + ASSERT(CCProxy::isImplThread());
|
| + ASSERT(!m_resourceHasBeenDeleted);
|
| +#ifndef NDEBUG
|
| + ASSERT(resourceProvider == m_resourceProvider);
|
| +#endif
|
| +
|
| + resourceProvider->deleteResource(id());
|
| + setId(0);
|
| + m_resourceHasBeenDeleted = true;
|
| +}
|
| +
|
| +bool CCPrioritizedTexture::Backing::resourceHasBeenDeleted() const
|
| +{
|
| + ASSERT(CCProxy::isImplThread());
|
| + return m_resourceHasBeenDeleted;
|
| }
|
|
|
| void CCPrioritizedTexture::Backing::updatePriority()
|
|
|