aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gpu/GrProcessor.cpp39
-rw-r--r--src/gpu/GrProgramElement.cpp28
2 files changed, 36 insertions, 31 deletions
diff --git a/src/gpu/GrProcessor.cpp b/src/gpu/GrProcessor.cpp
index 0512aa85fe..f4bead2d08 100644
--- a/src/gpu/GrProcessor.cpp
+++ b/src/gpu/GrProcessor.cpp
@@ -114,17 +114,50 @@ GrProcessor::~GrProcessor() {}
void GrProcessor::addTextureSampler(const TextureSampler* access) {
fTextureSamplers.push_back(access);
- this->addGpuResource(access->programTexture());
}
void GrProcessor::addBufferAccess(const BufferAccess* access) {
fBufferAccesses.push_back(access);
- this->addGpuResource(access->programBuffer());
}
void GrProcessor::addImageStorageAccess(const ImageStorageAccess* access) {
fImageStorageAccesses.push_back(access);
- this->addGpuResource(access->programTexture());
+}
+
+void GrProcessor::addPendingIOs() const {
+ for (const auto& sampler : fTextureSamplers) {
+ sampler->programTexture()->markPendingIO();
+ }
+ for (const auto& buffer : fBufferAccesses) {
+ buffer->programBuffer()->markPendingIO();
+ }
+ for (const auto& imageStorage : fImageStorageAccesses) {
+ imageStorage->programTexture()->markPendingIO();
+ }
+}
+
+void GrProcessor::removeRefs() const {
+ for (const auto& sampler : fTextureSamplers) {
+ sampler->programTexture()->removeRef();
+ }
+ for (const auto& buffer : fBufferAccesses) {
+ buffer->programBuffer()->removeRef();
+ }
+ for (const auto& imageStorage : fImageStorageAccesses) {
+ imageStorage->programTexture()->removeRef();
+ }
+}
+
+void GrProcessor::pendingIOComplete() const {
+ for (const auto& sampler : fTextureSamplers) {
+ sampler->programTexture()->pendingIOComplete();
+ }
+ for (const auto& buffer : fBufferAccesses) {
+ buffer->programBuffer()->pendingIOComplete();
+ }
+ for (const auto& imageStorage : fImageStorageAccesses) {
+ imageStorage->programTexture()->pendingIOComplete();
+ }
}
void* GrProcessor::operator new(size_t size) {
diff --git a/src/gpu/GrProgramElement.cpp b/src/gpu/GrProgramElement.cpp
deleted file mode 100644
index 82bb7217bf..0000000000
--- a/src/gpu/GrProgramElement.cpp
+++ /dev/null
@@ -1,28 +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 "GrProgramElement.h"
-#include "GrGpuResourceRef.h"
-#include "SkAtomics.h"
-
-void GrProgramElement::addPendingIOs() const {
- for (int i = 0; i < fGpuResources.count(); ++i) {
- fGpuResources[i]->markPendingIO();
- }
-}
-
-void GrProgramElement::removeRefs() const {
- for (int i = 0; i < fGpuResources.count(); ++i) {
- fGpuResources[i]->removeRef();
- }
-}
-
-void GrProgramElement::pendingIOComplete() const {
- for (int i = 0; i < fGpuResources.count(); ++i) {
- fGpuResources[i]->pendingIOComplete();
- }
-}