diff options
Diffstat (limited to 'src/gpu/GrGpuResourceCacheAccess.h')
-rw-r--r-- | src/gpu/GrGpuResourceCacheAccess.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/gpu/GrGpuResourceCacheAccess.h b/src/gpu/GrGpuResourceCacheAccess.h index 7417a55a71..3c3786d053 100644 --- a/src/gpu/GrGpuResourceCacheAccess.h +++ b/src/gpu/GrGpuResourceCacheAccess.h @@ -54,6 +54,26 @@ public: return NULL; } + /** + * Called by the cache to delete the resource under normal circumstances. + */ + void release() { + fResource->release(); + if (fResource->isPurgable()) { + SkDELETE(fResource); + } + } + + /** + * Called by the cache to delete the resource when the backend 3D context is no longer valid. + */ + void abandon() { + fResource->abandon(); + if (fResource->isPurgable()) { + SkDELETE(fResource); + } + } + private: CacheAccess(GrGpuResource* resource) : fResource(resource) { } CacheAccess(const CacheAccess& that) : fResource(that.fResource) { } |