8#ifndef skgpu_graphite_ResourceProvider_DEFINED
9#define skgpu_graphite_ResourceProvider_DEFINED
37class ComputePipelineDesc;
39class GraphicsPipeline;
40class GraphicsPipelineDesc;
41class GraphiteResourceKey;
43class RuntimeEffectDictionary;
44class ShaderCodeDictionary;
74 std::string_view label);
95#if defined(GRAPHITE_TEST_UTILS)
100#ifdef SK_BUILD_FOR_ANDROID
103 bool isProtectedContent,
105 bool fromAndroidWindow)
const;
110 SingleOwner* singleOwner,
112 size_t resourceBudget);
128 std::string_view label) = 0;
137#ifdef SK_BUILD_FOR_ANDROID
140 bool isProtectedContent,
142 bool fromAndroidWindow)
const;
static void info(const char *fmt,...) SK_PRINTF_LIKE(1
struct AHardwareBuffer AHardwareBuffer
sk_sp< GraphicsPipeline > findOrCreateGraphicsPipeline(const RuntimeEffectDictionary *, const GraphicsPipelineDesc &, const RenderPassDesc &)
sk_sp< Texture > findOrCreateDiscardableMSAAAttachment(SkISize dimensions, const TextureInfo &)
sk_sp< ComputePipeline > findOrCreateComputePipeline(const ComputePipelineDesc &)
virtual sk_sp< Sampler > createSampler(const SamplerDesc &)=0
void purgeResourcesNotUsedSince(StdSteadyClock::time_point purgeTime)
ProxyCache * proxyCache()
virtual BackendTexture onCreateBackendTexture(SkISize dimensions, const TextureInfo &)=0
virtual sk_sp< Texture > createWrappedTexture(const BackendTexture &)=0
sk_sp< Sampler > findOrCreateCompatibleSampler(const SamplerDesc &)
BackendTexture createBackendTexture(SkISize dimensions, const TextureInfo &)
sk_sp< Texture > findOrCreateDepthStencilAttachment(SkISize dimensions, const TextureInfo &)
virtual sk_sp< Buffer > createBuffer(size_t size, BufferType type, AccessPattern, std::string_view label)=0
void deleteBackendTexture(const BackendTexture &)
virtual sk_sp< GraphicsPipeline > createGraphicsPipeline(const RuntimeEffectDictionary *, const GraphicsPipelineDesc &, const RenderPassDesc &)=0
virtual void onDeleteBackendTexture(const BackendTexture &)=0
sk_sp< Texture > findOrCreateScratchTexture(SkISize, const TextureInfo &, skgpu::Budgeted)
virtual sk_sp< Texture > createTexture(SkISize, const TextureInfo &, skgpu::Budgeted)=0
virtual ~ResourceProvider()
size_t getResourceCacheLimit() const
sk_sp< Buffer > findOrCreateBuffer(size_t size, BufferType type, AccessPattern, std::string_view label)
sk_sp< ResourceCache > fResourceCache
size_t getResourceCacheCurrentBudgetedBytes() const
void dumpMemoryStatistics(SkTraceMemoryDump *traceMemoryDump) const
SharedContext * fSharedContext
virtual sk_sp< ComputePipeline > createComputePipeline(const ComputePipelineDesc &)=0
std::function< ProfileSample(void)> Sampler
Sampler is run during SamplingProfiler::SampleRepeatedly. Each platform should implement its version ...