blob: 124f3b55e89d22afe65aea055c5227c4ac4d0b7c [file] [log] [blame]
/*
* Copyright 2021 Google LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "src/gpu/graphite/TaskGraph.h"
namespace skgpu::graphite {
TaskGraph::TaskGraph() {}
TaskGraph::~TaskGraph() {}
void TaskGraph::add(sk_sp<Task> task) {
fTasks.emplace_back(std::move(task));
}
void TaskGraph::prepend(sk_sp<Task> task) {
fTasks.emplace(fTasks.begin(), std::move(task));
}
bool TaskGraph::prepareResources(ResourceProvider* resourceProvider,
const RuntimeEffectDictionary* runtimeDict) {
for (const auto& task: fTasks) {
if (!task->prepareResources(resourceProvider, runtimeDict)) {
return false;
}
}
return true;
}
bool TaskGraph::addCommands(Context* context, CommandBuffer* commandBuffer) {
for (const auto& task: fTasks) {
if (!task->addCommands(context, commandBuffer)) {
return false;
}
}
return true;
}
void TaskGraph::reset() {
fTasks.clear();
}
} // namespace skgpu::graphite