make getContentKey() available in GrGpuResource public interface
TBR=robertphillips@google.com
Committed: https://skia.googlesource.com/skia/+/85ed2db092e75db41b711b9116a8d5b465fc2b0c
Review URL: https://codereview.chromium.org/886313005
diff --git a/include/gpu/GrGpuResource.h b/include/gpu/GrGpuResource.h
index bdf6257..7896ab3 100644
--- a/include/gpu/GrGpuResource.h
+++ b/include/gpu/GrGpuResource.h
@@ -188,6 +188,10 @@
*/
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).
diff --git a/src/gpu/GrGpuResourceCacheAccess.h b/src/gpu/GrGpuResourceCacheAccess.h
index aa2337d..867252d 100644
--- a/src/gpu/GrGpuResourceCacheAccess.h
+++ b/src/gpu/GrGpuResourceCacheAccess.h
@@ -33,7 +33,7 @@
* 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();
}
@@ -51,11 +51,6 @@
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?
*/
bool isWrapped() const { return GrGpuResource::kWrapped_LifeCycle == fResource->fLifeCycle; }
@@ -65,7 +60,7 @@
*/
bool isBudgeted() const {
bool ret = GrGpuResource::kCached_LifeCycle == fResource->fLifeCycle;
- SkASSERT(ret || !this->getContentKey().isValid());
+ SkASSERT(ret || !fResource->getContentKey().isValid());
return ret;
}
diff --git a/src/gpu/GrResourceCache2.cpp b/src/gpu/GrResourceCache2.cpp
index 65894d3..99c4270 100644
--- a/src/gpu/GrResourceCache2.cpp
+++ b/src/gpu/GrResourceCache2.cpp
@@ -132,8 +132,8 @@
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 @@
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 @@
// 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 @@
}
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);
diff --git a/src/gpu/GrResourceCache2.h b/src/gpu/GrResourceCache2.h
index d5c4182..9c9900a 100644
--- a/src/gpu/GrResourceCache2.h
+++ b/src/gpu/GrResourceCache2.h
@@ -194,7 +194,7 @@
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(); }