aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/utils
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2017-02-22 13:49:09 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-02-22 19:28:12 +0000
commitbc9956de31da06529b540918832f2435f884ac26 (patch)
tree2cfb21a296383c5a8de810f6d5a06ec4e9a53d46 /src/utils
parente522f4c455d0d5dbe813f38d16c0d4cd46fa5dee (diff)
Attempt to stabilize shadow_utils GM for replay configs
Change-Id: I0ed15ab102fa1e0a364d5f3a953bedd8afbda3c3 Reviewed-on: https://skia-review.googlesource.com/8853 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/SkShadowUtils.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/utils/SkShadowUtils.cpp b/src/utils/SkShadowUtils.cpp
index 8374aef68f..86aba797d6 100644
--- a/src/utils/SkShadowUtils.cpp
+++ b/src/utils/SkShadowUtils.cpp
@@ -83,6 +83,10 @@ sk_sp<GrFragmentProcessor> SkGaussianColorFilter::asFragmentProcessor(GrContext*
namespace {
+uint64_t resource_cache_shared_id() {
+ return 0x2020776f64616873llu; // 'shadow '
+}
+
/** Factory for an ambient shadow mesh with particular shadow properties. */
struct AmbientVerticesFactory {
SkScalar fRadius = SK_ScalarNaN; // NaN so that isCompatible will always fail until init'ed.
@@ -381,7 +385,7 @@ void draw_shadow(const FACTORY& factory, SkCanvas* canvas, ShadowedPath& path, S
keyStorage.reset(keyDataBytes + sizeof(SkResourceCache::Key));
key = new (keyStorage.begin()) SkResourceCache::Key();
path.writeKey((uint32_t*)(keyStorage.begin() + sizeof(*key)));
- key->init(&kNamespace, 0, keyDataBytes);
+ key->init(&kNamespace, resource_cache_shared_id(), keyDataBytes);
SkResourceCache::Find(*key, FindVisitor<FACTORY>, &context);
}
@@ -522,3 +526,5 @@ void SkShadowUtils::DrawShadow(SkCanvas* canvas, const SkPath& path, SkScalar oc
draw_shadow(factory, canvas, shadowedPath, color);
}
}
+
+void SkShadowUtils::ClearCache() { SkResourceCache::PostPurgeSharedID(resource_cache_shared_id()); }