Rename GrGpuObject to GrGpuResource
R=robertphillips@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/418143004
diff --git a/src/gpu/GrGpuResource.cpp b/src/gpu/GrGpuResource.cpp
new file mode 100644
index 0000000..8c2dc45
--- /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;
+}