diff options
author | bsalomon <bsalomon@google.com> | 2014-11-14 06:29:40 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-11-14 06:29:40 -0800 |
commit | 407aa584d183c1bf314f5defd1cf0202e8a96c89 (patch) | |
tree | 9d2ba6989a9e0c86281337c5243c060ad4544e8d /src/gpu/GrGpuResource.cpp | |
parent | 5ae776504fce25d320054390556526403068f103 (diff) |
Replace GrResourceCache with GrResourceCache2.
BUG=skia:2889
Committed: https://skia.googlesource.com/skia/+/66a450f21a3da174b7eed89a1d5fc8591e8b6ee6
Review URL: https://codereview.chromium.org/716143004
Diffstat (limited to 'src/gpu/GrGpuResource.cpp')
-rw-r--r-- | src/gpu/GrGpuResource.cpp | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/src/gpu/GrGpuResource.cpp b/src/gpu/GrGpuResource.cpp index f6f7282700..be8ea0daf0 100644 --- a/src/gpu/GrGpuResource.cpp +++ b/src/gpu/GrGpuResource.cpp @@ -18,16 +18,8 @@ static inline GrResourceCache2* get_resource_cache2(GrGpu* gpu) { return gpu->getContext()->getResourceCache2(); } -static inline GrResourceCache* get_resource_cache(GrGpu* gpu) { - SkASSERT(gpu); - SkASSERT(gpu->getContext()); - SkASSERT(gpu->getContext()->getResourceCache()); - return gpu->getContext()->getResourceCache(); -} - GrGpuResource::GrGpuResource(GrGpu* gpu, bool isWrapped) : fGpu(gpu) - , fCacheEntry(NULL) , fGpuMemorySize(kInvalidGpuMemorySize) , fUniqueID(CreateUniqueID()) , fScratchKey(GrResourceKey::NullScratchKey()) @@ -40,7 +32,7 @@ GrGpuResource::GrGpuResource(GrGpu* gpu, bool isWrapped) } void GrGpuResource::registerWithCache() { - get_resource_cache2(fGpu)->insertResource(this); + get_resource_cache2(fGpu)->resourceAccess().insertResource(this); } GrGpuResource::~GrGpuResource() { @@ -51,16 +43,18 @@ GrGpuResource::~GrGpuResource() { void GrGpuResource::release() { if (fGpu) { this->onRelease(); - get_resource_cache2(fGpu)->removeResource(this); + get_resource_cache2(fGpu)->resourceAccess().removeResource(this); fGpu = NULL; + fGpuMemorySize = 0; } } void GrGpuResource::abandon() { if (fGpu) { this->onAbandon(); - get_resource_cache2(fGpu)->removeResource(this); + get_resource_cache2(fGpu)->resourceAccess().removeResource(this); fGpu = NULL; + fGpuMemorySize = 0; } } @@ -80,6 +74,17 @@ GrContext* GrGpuResource::getContext() { } } +void GrGpuResource::didChangeGpuMemorySize() const { + if (this->wasDestroyed()) { + return; + } + + size_t oldSize = fGpuMemorySize; + SkASSERT(kInvalidGpuMemorySize != oldSize); + fGpuMemorySize = kInvalidGpuMemorySize; + get_resource_cache2(fGpu)->resourceAccess().didChangeGpuMemorySize(this, oldSize); +} + bool GrGpuResource::setContentKey(const GrResourceKey& contentKey) { // Currently this can only be called once and can't be called when the resource is scratch. SkASSERT(!contentKey.isScratch()); @@ -92,7 +97,7 @@ bool GrGpuResource::setContentKey(const GrResourceKey& contentKey) { fContentKey = contentKey; fContentKeySet = true; - if (!get_resource_cache2(fGpu)->didSetContentKey(this)) { + if (!get_resource_cache2(fGpu)->resourceAccess().didSetContentKey(this)) { fContentKeySet = false; return false; } @@ -100,8 +105,8 @@ bool GrGpuResource::setContentKey(const GrResourceKey& contentKey) { } void GrGpuResource::notifyIsPurgable() const { - if (fCacheEntry && !this->wasDestroyed()) { - get_resource_cache(fGpu)->notifyPurgable(this); + if (!this->wasDestroyed()) { + get_resource_cache2(fGpu)->resourceAccess().notifyPurgable(this); } } |