| Index: src/gpu/GrGpuResourcePriv.h
 | 
| diff --git a/src/gpu/GrGpuResourceCacheAccess.h b/src/gpu/GrGpuResourcePriv.h
 | 
| similarity index 58%
 | 
| copy from src/gpu/GrGpuResourceCacheAccess.h
 | 
| copy to src/gpu/GrGpuResourcePriv.h
 | 
| index 6c99d08e469769df92ef570863e3b8cedcd9a67f..520e217e98e44978324c938f9c9a5b4f6f4eb3c7 100644
 | 
| --- a/src/gpu/GrGpuResourceCacheAccess.h
 | 
| +++ b/src/gpu/GrGpuResourcePriv.h
 | 
| @@ -1,21 +1,21 @@
 | 
|  
 | 
|  /*
 | 
| - * Copyright 2014 Google Inc.
 | 
| + * Copyright 2015 Google Inc.
 | 
|   *
 | 
|   * Use of this source code is governed by a BSD-style license that can be
 | 
|   * found in the LICENSE file.
 | 
|   */
 | 
|  
 | 
| -#ifndef GrGpuResourceCacheAccess_DEFINED
 | 
| -#define GrGpuResourceCacheAccess_DEFINED
 | 
| +#ifndef GrGpuResourcePriv_DEFINED
 | 
| +#define GrGpuResourcePriv_DEFINED
 | 
|  
 | 
|  #include "GrGpuResource.h"
 | 
|  
 | 
|  /**
 | 
| - * This class allows code internal to Skia privileged access to manage the cache keys of a
 | 
| - * GrGpuResource object.
 | 
| + * This class allows code internal to Skia privileged access to manage the cache keys and budget
 | 
| + * status of a GrGpuResource object.
 | 
|   */
 | 
| -class GrGpuResource::CacheAccess {
 | 
| +class GrGpuResource::ResourcePriv {
 | 
|  public:
 | 
|      /**
 | 
|       * Sets a content key for the resource. If the resource was previously cached as scratch it will
 | 
| @@ -28,34 +28,20 @@ public:
 | 
|          return fResource->setContentKey(contentKey);
 | 
|      }
 | 
|  
 | 
| +    /** Removes the content key from a resource */
 | 
|      void removeContentKey() { return fResource->removeContentKey(); }
 | 
|  
 | 
|      /**
 | 
| -     * Is the resource currently cached as scratch? This means it is cached, has a valid scratch
 | 
| -     * key, and does not have a content key.
 | 
| -     */
 | 
| -    bool isScratch() const {
 | 
| -        return !fResource->getContentKey().isValid() && fResource->fScratchKey.isValid() &&
 | 
| -                this->isBudgeted();
 | 
| -    }
 | 
| -
 | 
| -    /** 
 | 
| -     * If this resource can be used as a scratch resource this returns a valid scratch key.
 | 
| -     * Otherwise it returns a key for which isNullScratch is true. The resource may currently be
 | 
| -     * used as a content resource rather than scratch. Check isScratch().
 | 
| -     */
 | 
| -    const GrScratchKey& getScratchKey() const { return fResource->fScratchKey; }
 | 
| -
 | 
| -    /**
 | 
| -     * If the resource has a scratch key, the key will be removed. Since scratch keys are installed
 | 
| -     * at resource creation time, this means the resource will never again be used as scratch.
 | 
| +     * If the resource is uncached make it cached. Has no effect on resources that are wrapped or
 | 
| +     * already cached.
 | 
|       */
 | 
| -    void removeScratchKey() const { fResource->removeScratchKey();  }
 | 
| +    void makeBudgeted() { fResource->makeBudgeted(); }
 | 
|  
 | 
|      /**
 | 
| -     * Is the resource object wrapping an externally allocated GPU resource?
 | 
| +     * If the resource is cached make it uncached. Has no effect on resources that are wrapped or
 | 
| +     * already uncached. Furthermore, resources with content keys cannot be made unbudgeted.
 | 
|       */
 | 
| -    bool isWrapped() const { return GrGpuResource::kWrapped_LifeCycle == fResource->fLifeCycle; }
 | 
| +    void makeUnbudgeted() { fResource->makeUnbudgeted(); }
 | 
|  
 | 
|      /**
 | 
|       * Does the resource count against the resource budget?
 | 
| @@ -66,56 +52,37 @@ public:
 | 
|          return ret;
 | 
|      }
 | 
|  
 | 
| -    /**
 | 
| -     * If the resource is uncached make it cached. Has no effect on resources that are wrapped or
 | 
| -     * already cached.
 | 
| -     */
 | 
| -    void makeBudgeted() { fResource->makeBudgeted(); }
 | 
| -
 | 
| -    /**
 | 
| -     * If the resource is cached make it uncached. Has no effect on resources that are wrapped or
 | 
| -     * already uncached. Furthermore, resources with content keys cannot be made unbudgeted.
 | 
| -     */
 | 
| -    void makeUnbudgeted() { fResource->makeUnbudgeted(); }
 | 
| -
 | 
| -    /**
 | 
| -     * Called by the cache to delete the resource under normal circumstances.
 | 
| +    /** 
 | 
| +     * If this resource can be used as a scratch resource this returns a valid scratch key.
 | 
| +     * Otherwise it returns a key for which isNullScratch is true. The resource may currently be
 | 
| +     * used as a content resource rather than scratch. Check isScratch().
 | 
|       */
 | 
| -    void release() {
 | 
| -        fResource->release();
 | 
| -        if (fResource->isPurgeable()) {            
 | 
| -            SkDELETE(fResource);
 | 
| -        }
 | 
| -    }
 | 
| +    const GrScratchKey& getScratchKey() const { return fResource->fScratchKey; }
 | 
|  
 | 
|      /**
 | 
| -     * Called by the cache to delete the resource when the backend 3D context is no longer valid.
 | 
| +     * If the resource has a scratch key, the key will be removed. Since scratch keys are installed
 | 
| +     * at resource creation time, this means the resource will never again be used as scratch.
 | 
|       */
 | 
| -    void abandon() {
 | 
| -        fResource->abandon();
 | 
| -        if (fResource->isPurgeable()) {            
 | 
| -            SkDELETE(fResource);
 | 
| -        }
 | 
| -    }
 | 
| +    void removeScratchKey() const { fResource->removeScratchKey();  }
 | 
|  
 | 
| -private:
 | 
| -    CacheAccess(GrGpuResource* resource) : fResource(resource) { }
 | 
| -    CacheAccess(const CacheAccess& that) : fResource(that.fResource) { }
 | 
| -    CacheAccess& operator=(const CacheAccess&); // unimpl
 | 
| +protected:
 | 
| +    ResourcePriv(GrGpuResource* resource) : fResource(resource) {   }
 | 
| +    ResourcePriv(const ResourcePriv& that) : fResource(that.fResource) {}
 | 
| +    ResourcePriv& operator=(const CacheAccess&); // unimpl
 | 
|  
 | 
|      // No taking addresses of this type.
 | 
| -    const CacheAccess* operator&() const;
 | 
| -    CacheAccess* operator&();
 | 
| +    const ResourcePriv* operator&() const;
 | 
| +    ResourcePriv* operator&();
 | 
|  
 | 
|      GrGpuResource* fResource;
 | 
|  
 | 
|      friend class GrGpuResource; // to construct/copy this type.
 | 
|  };
 | 
|  
 | 
| -inline GrGpuResource::CacheAccess GrGpuResource::cacheAccess() { return CacheAccess(this); }
 | 
| +inline GrGpuResource::ResourcePriv GrGpuResource::resourcePriv() { return ResourcePriv(this); }
 | 
|  
 | 
| -inline const GrGpuResource::CacheAccess GrGpuResource::cacheAccess() const {
 | 
| -    return CacheAccess(const_cast<GrGpuResource*>(this));
 | 
| +inline const GrGpuResource::ResourcePriv GrGpuResource::resourcePriv() const {
 | 
| +    return ResourcePriv(const_cast<GrGpuResource*>(this));
 | 
|  }
 | 
|  
 | 
|  #endif
 | 
| 
 |