diff options
author | 2017-05-08 11:16:39 -0400 | |
---|---|---|
committer | 2017-05-08 15:48:44 +0000 | |
commit | 0562eb9c6c98f07732ca96a1dd4e986f1ca089b8 (patch) | |
tree | b2df127ae523cc032e8e89d45c62258747c8d43d /tests | |
parent | af6522adc17b06d82ec60afbfd41e9e4c48bfc9e (diff) |
Allow wrapped resources to have unique keys
Previously, wrapped resources were never budgeted. Now we explicitly allow
wrapped, unbudgeted resources with unique keys. This allows code that
wraps (and re-wraps) external resources with a deterministic key to find
the same wrapped resource - saving time and ensuring a single wrapped
copy, to preserve state on the resource (like texture sampler state).
Bug: skia:
Change-Id: I1dd7642f1ed8bb6c620029d46203cf5cb6b3c160
Reviewed-on: https://skia-review.googlesource.com/15241
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ResourceCacheTest.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/tests/ResourceCacheTest.cpp b/tests/ResourceCacheTest.cpp index 17e02ba193..5590c868bf 100644 --- a/tests/ResourceCacheTest.cpp +++ b/tests/ResourceCacheTest.cpp @@ -471,11 +471,15 @@ static void test_budgeting(skiatest::Reporter* reporter) { new TestResource(context->getGpu(), SkBudgeted::kNo); unbudgeted->setSize(13); - // Make sure we can't add a unique key to the wrapped resource + // Make sure we can add a unique key to the wrapped resource GrUniqueKey uniqueKey2; make_unique_key<0>(&uniqueKey2, 1); wrapped->resourcePriv().setUniqueKey(uniqueKey2); - REPORTER_ASSERT(reporter, nullptr == cache->findAndRefUniqueResource(uniqueKey2)); + GrGpuResource* wrappedViaKey = cache->findAndRefUniqueResource(uniqueKey2); + REPORTER_ASSERT(reporter, wrappedViaKey != nullptr); + + // Remove the extra ref we just added. + wrappedViaKey->unref(); // Make sure sizes are as we expect REPORTER_ASSERT(reporter, 4 == cache->getResourceCount()); |