make getContentKey() available in GrGpuResource public interface
authorbsalomon <bsalomon@google.com>
Mon, 2 Feb 2015 22:08:09 +0000 (14:08 -0800)
committerCommit bot <commit-bot@chromium.org>
Mon, 2 Feb 2015 22:08:09 +0000 (14:08 -0800)
TBR=robertphillips@google.com

Review URL: https://codereview.chromium.org/886313005

include/gpu/GrGpuResource.h
src/gpu/GrGpuResourceCacheAccess.h
src/gpu/GrResourceCache2.cpp
src/gpu/GrResourceCache2.h

index bdf6257..7896ab3 100644 (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).
index aa2337d..867252d 100644 (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();
     }
 
@@ -51,11 +51,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?
      */
     bool isWrapped() const { return GrGpuResource::kWrapped_LifeCycle == fResource->fLifeCycle; }
@@ -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;
     }
 
index 65894d3..99c4270 100644 (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);
index d5c4182..9c9900a 100644 (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(); }