aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrGpuResourceRef.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/GrGpuResourceRef.cpp')
-rw-r--r--src/gpu/GrGpuResourceRef.cpp127
1 files changed, 0 insertions, 127 deletions
diff --git a/src/gpu/GrGpuResourceRef.cpp b/src/gpu/GrGpuResourceRef.cpp
deleted file mode 100644
index 532e0655d8..0000000000
--- a/src/gpu/GrGpuResourceRef.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright 2014 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "GrGpuResourceRef.h"
-
-GrGpuResourceRef::GrGpuResourceRef() {
- fResource = nullptr;
- fOwnRef = false;
- fPendingIO = false;
-}
-
-GrGpuResourceRef::GrGpuResourceRef(GrGpuResource* resource, GrIOType ioType) {
- fResource = nullptr;
- fOwnRef = false;
- fPendingIO = false;
- this->setResource(resource, ioType);
-}
-
-GrGpuResourceRef::~GrGpuResourceRef() {
- if (fOwnRef) {
- SkASSERT(fResource);
- fResource->unref();
- }
- if (fPendingIO) {
- switch (fIOType) {
- case kRead_GrIOType:
- fResource->completedRead();
- break;
- case kWrite_GrIOType:
- fResource->completedWrite();
- break;
- case kRW_GrIOType:
- fResource->completedRead();
- fResource->completedWrite();
- break;
- }
- }
-}
-
-void GrGpuResourceRef::reset() {
- SkASSERT(!fPendingIO);
- SkASSERT(SkToBool(fResource) == fOwnRef);
- if (fOwnRef) {
- fResource->unref();
- fOwnRef = false;
- fResource = nullptr;
- }
-}
-
-void GrGpuResourceRef::setResource(GrGpuResource* resource, GrIOType ioType) {
- SkASSERT(!fPendingIO);
- SkASSERT(SkToBool(fResource) == fOwnRef);
- SkSafeUnref(fResource);
- if (nullptr == resource) {
- fResource = nullptr;
- fOwnRef = false;
- } else {
- fResource = resource;
- fOwnRef = true;
- fIOType = ioType;
- }
-}
-
-void GrGpuResourceRef::markPendingIO() const {
- if (!fResource) {
- return;
- }
-
- // This should only be called when the owning GrProgramElement gets its first
- // pendingExecution ref.
- SkASSERT(!fPendingIO);
- fPendingIO = true;
- switch (fIOType) {
- case kRead_GrIOType:
- fResource->addPendingRead();
- break;
- case kWrite_GrIOType:
- fResource->addPendingWrite();
- break;
- case kRW_GrIOType:
- fResource->addPendingRead();
- fResource->addPendingWrite();
- break;
- }
-}
-
-void GrGpuResourceRef::pendingIOComplete() const {
- if (!fResource) {
- return;
- }
-
- // This should only be called when the owner's pending executions have ocurred but it is still
- // reffed.
- SkASSERT(fOwnRef);
- SkASSERT(fPendingIO);
- switch (fIOType) {
- case kRead_GrIOType:
- fResource->completedRead();
- break;
- case kWrite_GrIOType:
- fResource->completedWrite();
- break;
- case kRW_GrIOType:
- fResource->completedRead();
- fResource->completedWrite();
- break;
-
- }
- fPendingIO = false;
-}
-
-void GrGpuResourceRef::removeRef() const {
- if (!fResource) {
- return;
- }
-
- // This should only be called once, when the owners last ref goes away and
- // there is a pending execution.
- SkASSERT(fOwnRef);
- SkASSERT(fPendingIO);
- fResource->unref();
- fOwnRef = false;
-}