Treat cross context images as Ganesh-created resources
Always create them budgeted, and register them with the cache (not as
wrapped resources).
BUG=skia:
Change-Id: Id18ecf6e9e512db4be21b4f2bfd8e8c060bbe805
Reviewed-on: https://skia-review.googlesource.com/9497
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
diff --git a/tests/CrossContextImageTest.cpp b/tests/CrossContextImageTest.cpp
index e37b095..82eb2d5 100644
--- a/tests/CrossContextImageTest.cpp
+++ b/tests/CrossContextImageTest.cpp
@@ -140,9 +140,24 @@
REPORTER_ASSERT(reporter, ccid != nullptr);
ContextInfo info2 = factory.getSharedContextInfo(info.grContext());
- auto image = SkImage::MakeFromCrossContextImageData(info2.grContext(), std::move(ccid));
+ GrContext* ctx2 = info2.grContext();
+ int resourceCountBefore = 0, resourceCountAfter = 0;
+ size_t resourceBytesBefore = 0, resourceBytesAfter = 0;
+ if (ctx2) {
+ ctx2->getResourceCacheUsage(&resourceCountBefore, &resourceBytesBefore);
+ }
+
+ auto image = SkImage::MakeFromCrossContextImageData(ctx2, std::move(ccid));
REPORTER_ASSERT(reporter, image != nullptr);
+ if (ctx2) {
+ // MakeFromCrossContextImageData should have imported the texture back into our
+ // cache, so we should see an uptick.
+ ctx2->getResourceCacheUsage(&resourceCountAfter, &resourceBytesAfter);
+ REPORTER_ASSERT(reporter, resourceCountAfter == resourceCountBefore + 1);
+ REPORTER_ASSERT(reporter, resourceBytesAfter > resourceBytesBefore);
+ }
+
// JPEG encode -> decode won't round trip the image perfectly
assert_equal(reporter, testImage.get(), image.get(),
SkEncodedImageFormat::kJPEG == format ? 2 : 0);