80#include "include/core/SkRefCnt.h"
88 static ImageFileCache& instance();
99 sk_sp<SkImage> get_or_build(
100 const std::string& path,
101 const void* backend_key,
102 const std::function<sk_sp<SkImage>()>& build);
106 static constexpr std::size_t kDefaultFileByteBudget = 64u * 1024u * 1024u;
109 static constexpr std::chrono::milliseconds kFailureRetryDelay{1000};
113 static constexpr std::size_t kDefaultInlineByteBudget = 96u * 1024u * 1024u;
122 sk_sp<SkImage> get_or_build_inline(
const std::string& content_key,
const void* backend_key,
123 std::size_t encoded_size,
124 const std::function<sk_sp<SkImage>()>& build);
127 std::uint64_t hits = 0;
128 std::uint64_t builds = 0;
129 std::size_t
size = 0;
130 std::size_t bytes = 0;
137 std::uint64_t hits = 0;
138 std::uint64_t builds = 0;
139 std::uint64_t over_budget = 0;
140 std::size_t
size = 0;
141 std::size_t bytes = 0;
144 InlineStats inline_stats()
const;
157 void clear_backend(
const void* backend_key);
163 void begin_frame(
const void* backend_key);
168 void set_enabled(
bool enabled);
169 bool enabled()
const;
173 void set_capacity(std::size_t capacity);
174 std::size_t capacity()
const;
178 void set_byte_budget(std::size_t bytes);
179 std::size_t byte_budget()
const;
182 void set_inline_byte_budget(std::size_t bytes);
183 std::size_t inline_byte_budget()
const;
187 void set_clock_for_testing(std::function<std::chrono::steady_clock::time_point()> now);
190 ImageFileCache() =
default;
Definition affine_transform.hpp:24
@ size
Definition config.hpp:216