#include "src/gpu/graphite/GlobalCache.h"
#include "src/gpu/graphite/ComputePipeline.h"
#include "src/gpu/graphite/ContextUtils.h"
#include "src/gpu/graphite/GraphicsPipeline.h"
#include "src/gpu/graphite/Resource.h"
namespace skgpu::graphite {
GlobalCache::GlobalCache()
: … { … }
GlobalCache::~GlobalCache() { … }
void GlobalCache::deleteResources() { … }
sk_sp<GraphicsPipeline> GlobalCache::findGraphicsPipeline(const UniqueKey& key) { … }
sk_sp<GraphicsPipeline> GlobalCache::addGraphicsPipeline(const UniqueKey& key,
sk_sp<GraphicsPipeline> pipeline) { … }
#if defined(GPU_TEST_UTILS)
int GlobalCache::numGraphicsPipelines() const {
SkAutoSpinlock lock{fSpinLock};
return fGraphicsPipelineCache.count();
}
void GlobalCache::resetGraphicsPipelines() {
SkAutoSpinlock lock{fSpinLock};
fGraphicsPipelineCache.reset();
}
void GlobalCache::forEachGraphicsPipeline(
const std::function<void(const UniqueKey&, const GraphicsPipeline*)>& fn) {
SkAutoSpinlock lock{fSpinLock};
fGraphicsPipelineCache.foreach([&](const UniqueKey* k, const sk_sp<GraphicsPipeline>* v) {
fn(*k, v->get());
});
}
#endif
sk_sp<ComputePipeline> GlobalCache::findComputePipeline(const UniqueKey& key) { … }
sk_sp<ComputePipeline> GlobalCache::addComputePipeline(const UniqueKey& key,
sk_sp<ComputePipeline> pipeline) { … }
void GlobalCache::addStaticResource(sk_sp<Resource> resource) { … }
}