make getContentKey() available in GrGpuResource public interface

TBR=robertphillips@google.com

Review URL: https://codereview.chromium.org/886313005
This commit is contained in:
bsalomon 2015-02-02 14:08:09 -08:00 committed by Commit bot
parent e67164d9b3
commit 85ed2db092
4 changed files with 15 additions and 16 deletions

View File

@ -188,6 +188,10 @@ public:
*/
uint32_t getUniqueID() const { return fUniqueID; }
/** Returns the current content key for the resource. It will be invalid if the resource has not
been cached by its contents. */
const GrContentKey& getContentKey() const { return fContentKey; }
/**
* Attach a custom data object to this resource. The data will remain attached
* for the lifetime of this resource (until it is abandoned or released).

View File

@ -33,7 +33,7 @@ public:
* key, and does not have a content key.
*/
bool isScratch() const {
return !this->getContentKey().isValid() && fResource->fScratchKey.isValid() &&
return !fResource->getContentKey().isValid() && fResource->fScratchKey.isValid() &&
this->isBudgeted();
}
@ -50,11 +50,6 @@ public:
*/
void removeScratchKey() const { fResource->removeScratchKey(); }
/**
* If the resource is currently cached by a content key, the key is returned, otherwise NULL.
*/
const GrContentKey& getContentKey() const { return fResource->fContentKey; }
/**
* Is the resource object wrapping an externally allocated GPU resource?
*/
@ -65,7 +60,7 @@ public:
*/
bool isBudgeted() const {
bool ret = GrGpuResource::kCached_LifeCycle == fResource->fLifeCycle;
SkASSERT(ret || !this->getContentKey().isValid());
SkASSERT(ret || !fResource->getContentKey().isValid());
return ret;
}

View File

@ -132,8 +132,8 @@ void GrResourceCache2::removeResource(GrGpuResource* resource) {
if (resource->cacheAccess().getScratchKey().isValid()) {
fScratchMap.remove(resource->cacheAccess().getScratchKey(), resource);
}
if (resource->cacheAccess().getContentKey().isValid()) {
fContentHash.remove(resource->cacheAccess().getContentKey());
if (resource->getContentKey().isValid()) {
fContentHash.remove(resource->getContentKey());
}
this->validate();
}
@ -225,9 +225,9 @@ bool GrResourceCache2::didSetContentKey(GrGpuResource* resource) {
SkASSERT(!fPurging);
SkASSERT(resource);
SkASSERT(this->isInCache(resource));
SkASSERT(resource->cacheAccess().getContentKey().isValid());
SkASSERT(resource->getContentKey().isValid());
GrGpuResource* res = fContentHash.find(resource->cacheAccess().getContentKey());
GrGpuResource* res = fContentHash.find(resource->getContentKey());
if (NULL != res) {
return false;
}
@ -281,7 +281,7 @@ void GrResourceCache2::notifyPurgeable(GrGpuResource* resource) {
// Also purge if the resource has neither a valid scratch key nor a content key.
bool noKey = !resource->cacheAccess().getScratchKey().isValid() &&
!resource->cacheAccess().getContentKey().isValid();
!resource->getContentKey().isValid();
if (overBudget || noKey) {
release = true;
}
@ -435,18 +435,18 @@ void GrResourceCache2::validate() const {
}
if (resource->cacheAccess().isScratch()) {
SkASSERT(!resource->cacheAccess().getContentKey().isValid());
SkASSERT(!resource->getContentKey().isValid());
++scratch;
SkASSERT(fScratchMap.countForKey(resource->cacheAccess().getScratchKey()));
SkASSERT(!resource->cacheAccess().isWrapped());
} else if (resource->cacheAccess().getScratchKey().isValid()) {
SkASSERT(!resource->cacheAccess().isBudgeted() ||
resource->cacheAccess().getContentKey().isValid());
resource->getContentKey().isValid());
++couldBeScratch;
SkASSERT(fScratchMap.countForKey(resource->cacheAccess().getScratchKey()));
SkASSERT(!resource->cacheAccess().isWrapped());
}
const GrContentKey& contentKey = resource->cacheAccess().getContentKey();
const GrContentKey& contentKey = resource->getContentKey();
if (contentKey.isValid()) {
++content;
SkASSERT(fContentHash.find(contentKey) == resource);

View File

@ -194,7 +194,7 @@ private:
struct ContentHashTraits {
static const GrContentKey& GetKey(const GrGpuResource& r) {
return r.cacheAccess().getContentKey();
return r.getContentKey();
}
static uint32_t Hash(const GrContentKey& key) { return key.hash(); }