| 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
|
|
|