diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gpu/GrProcessor.cpp | 39 | ||||
-rw-r--r-- | src/gpu/GrProgramElement.cpp | 28 |
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(); - } -} |