diff options
author | 2014-07-25 08:35:45 -0700 | |
---|---|---|
committer | 2014-07-25 08:35:45 -0700 | |
commit | 6d3fe022d68fd6dd32c0fab30e24fa5a4f048946 (patch) | |
tree | 7af60205eeb7a7644e1bf4a8edfa0b1545619b0a /src/gpu/GrGpuResource.cpp | |
parent | 570c392a0056115e103b42c373a61e4e152ea92c (diff) |
Rename GrGpuObject to GrGpuResource
R=robertphillips@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/418143004
Diffstat (limited to 'src/gpu/GrGpuResource.cpp')
-rw-r--r-- | src/gpu/GrGpuResource.cpp | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/src/gpu/GrGpuResource.cpp b/src/gpu/GrGpuResource.cpp new file mode 100644 index 0000000000..8c2dc45080 --- /dev/null +++ b/src/gpu/GrGpuResource.cpp @@ -0,0 +1,71 @@ + +/* + * Copyright 2011 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + + +#include "GrGpuResource.h" +#include "GrGpu.h" + +GrGpuResource::GrGpuResource(GrGpu* gpu, bool isWrapped) + : fRefCnt(1) + , fCacheEntry(NULL) + , fUniqueID(CreateUniqueID()) { + fGpu = gpu; + if (isWrapped) { + fFlags = kWrapped_FlagBit; + } else { + fFlags = 0; + } + fGpu->insertObject(this); +} + +GrGpuResource::~GrGpuResource() { + SkASSERT(0 == fRefCnt); + // subclass should have released this. + SkASSERT(this->wasDestroyed()); +} + +void GrGpuResource::release() { + if (NULL != fGpu) { + this->onRelease(); + fGpu->removeObject(this); + fGpu = NULL; + } +} + +void GrGpuResource::abandon() { + if (NULL != fGpu) { + this->onAbandon(); + fGpu->removeObject(this); + fGpu = NULL; + } +} + +const GrContext* GrGpuResource::getContext() const { + if (NULL != fGpu) { + return fGpu->getContext(); + } else { + return NULL; + } +} + +GrContext* GrGpuResource::getContext() { + if (NULL != fGpu) { + return fGpu->getContext(); + } else { + return NULL; + } +} + +uint32_t GrGpuResource::CreateUniqueID() { + static int32_t gUniqueID = SK_InvalidUniqueID; + uint32_t id; + do { + id = static_cast<uint32_t>(sk_atomic_inc(&gUniqueID) + 1); + } while (id == SK_InvalidUniqueID); + return id; +} |