Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(716)

Unified Diff: tests/ResourceCacheTest.cpp

Issue 923143002: Split out methods in GrGpuResource::CacheAccess that can be called outside of the cache. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: do warning workaround in the right place Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/image/SkSurface_Gpu.cpp ('k') | tests/SurfaceTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/ResourceCacheTest.cpp
diff --git a/tests/ResourceCacheTest.cpp b/tests/ResourceCacheTest.cpp
index 856bd723a7f4b83d3d801164992c689285c895b7..620a2fead539f475c9c1705426f329c8a42e605d 100644
--- a/tests/ResourceCacheTest.cpp
+++ b/tests/ResourceCacheTest.cpp
@@ -10,6 +10,8 @@
#include "GrContext.h"
#include "GrContextFactory.h"
#include "GrGpu.h"
+#include "GrGpuResourceCacheAccess.h"
+#include "GrGpuResourcePriv.h"
#include "GrResourceCache.h"
#include "SkCanvas.h"
#include "SkGr.h"
@@ -243,7 +245,7 @@ static void test_budgeting(skiatest::Reporter* reporter) {
scratch->setSize(10);
TestResource* content = SkNEW_ARGS(TestResource, (context->getGpu()));
content->setSize(11);
- REPORTER_ASSERT(reporter, content->cacheAccess().setContentKey(contentKey));
+ REPORTER_ASSERT(reporter, content->resourcePriv().setContentKey(contentKey));
TestResource* wrapped = SkNEW_ARGS(TestResource,
(context->getGpu(), GrGpuResource::kWrapped_LifeCycle));
wrapped->setSize(12);
@@ -254,7 +256,7 @@ static void test_budgeting(skiatest::Reporter* reporter) {
// Make sure we can't add a content key to the wrapped resource
GrContentKey contentKey2;
make_content_key<0>(&contentKey2, 1);
- REPORTER_ASSERT(reporter, !wrapped->cacheAccess().setContentKey(contentKey2));
+ REPORTER_ASSERT(reporter, !wrapped->resourcePriv().setContentKey(contentKey2));
REPORTER_ASSERT(reporter, NULL == cache->findAndRefContentResource(contentKey2));
// Make sure sizes are as we expect
@@ -338,7 +340,7 @@ static void test_unbudgeted(skiatest::Reporter* reporter) {
content = SkNEW_ARGS(TestResource, (context->getGpu()));
content->setSize(11);
- REPORTER_ASSERT(reporter, content->cacheAccess().setContentKey(contentKey));
+ REPORTER_ASSERT(reporter, content->resourcePriv().setContentKey(contentKey));
content->unref();
REPORTER_ASSERT(reporter, 2 == cache->getResourceCount());
REPORTER_ASSERT(reporter, 21 == cache->getResourceBytes());
@@ -379,7 +381,9 @@ static void test_unbudgeted(skiatest::Reporter* reporter) {
REPORTER_ASSERT(reporter, 0 == cache->getBudgetedResourceBytes());
}
-static void test_unbudgeted_to_scratch(skiatest::Reporter* reporter) {
+// This method can't be static because it needs to friended in GrGpuResource::CacheAccess.
+void test_unbudgeted_to_scratch(skiatest::Reporter* reporter);
+/*static*/ void test_unbudgeted_to_scratch(skiatest::Reporter* reporter) {
Mock mock(10, 300);
GrContext* context = mock.context();
GrResourceCache* cache = mock.cache();
@@ -392,9 +396,9 @@ static void test_unbudgeted_to_scratch(skiatest::Reporter* reporter) {
size_t size = resource->gpuMemorySize();
for (int i = 0; i < 2; ++i) {
// Since this resource is unbudgeted, it should not be reachable as scratch.
- REPORTER_ASSERT(reporter, resource->cacheAccess().getScratchKey() == key);
+ REPORTER_ASSERT(reporter, resource->resourcePriv().getScratchKey() == key);
REPORTER_ASSERT(reporter, !resource->cacheAccess().isScratch());
- REPORTER_ASSERT(reporter, !resource->cacheAccess().isBudgeted());
+ REPORTER_ASSERT(reporter, !resource->resourcePriv().isBudgeted());
REPORTER_ASSERT(reporter, NULL == cache->findAndRefScratchResource(key));
REPORTER_ASSERT(reporter, 1 == cache->getResourceCount());
REPORTER_ASSERT(reporter, size == cache->getResourceBytes());
@@ -409,24 +413,24 @@ static void test_unbudgeted_to_scratch(skiatest::Reporter* reporter) {
REPORTER_ASSERT(reporter, size == cache->getBudgetedResourceBytes());
resource = static_cast<TestResource*>(cache->findAndRefScratchResource(key));
REPORTER_ASSERT(reporter, resource);
- REPORTER_ASSERT(reporter, resource->cacheAccess().getScratchKey() == key);
+ REPORTER_ASSERT(reporter, resource->resourcePriv().getScratchKey() == key);
REPORTER_ASSERT(reporter, resource->cacheAccess().isScratch());
- REPORTER_ASSERT(reporter, resource->cacheAccess().isBudgeted());
+ REPORTER_ASSERT(reporter, resource->resourcePriv().isBudgeted());
if (0 == i) {
// If made unbudgeted, it should return to original state: ref'ed and unbudgeted. Try
// the above tests again.
- resource->cacheAccess().makeUnbudgeted();
+ resource->resourcePriv().makeUnbudgeted();
} else {
// After the second time around, try removing the scratch key
- resource->cacheAccess().removeScratchKey();
+ resource->resourcePriv().removeScratchKey();
REPORTER_ASSERT(reporter, 1 == cache->getResourceCount());
REPORTER_ASSERT(reporter, size == cache->getResourceBytes());
REPORTER_ASSERT(reporter, 1 == cache->getBudgetedResourceCount());
REPORTER_ASSERT(reporter, size == cache->getBudgetedResourceBytes());
- REPORTER_ASSERT(reporter, !resource->cacheAccess().getScratchKey().isValid());
+ REPORTER_ASSERT(reporter, !resource->resourcePriv().getScratchKey().isValid());
REPORTER_ASSERT(reporter, !resource->cacheAccess().isScratch());
- REPORTER_ASSERT(reporter, resource->cacheAccess().isBudgeted());
+ REPORTER_ASSERT(reporter, resource->resourcePriv().isBudgeted());
// now when it is unrefed it should die since it has no key.
resource->unref();
@@ -512,7 +516,7 @@ static void test_remove_scratch_key(skiatest::Reporter* reporter) {
// Find the first resource and remove its scratch key
GrGpuResource* find;
find = cache->findAndRefScratchResource(scratchKey);
- find->cacheAccess().removeScratchKey();
+ find->resourcePriv().removeScratchKey();
// It's still alive, but not cached by scratch key anymore
REPORTER_ASSERT(reporter, 2 == TestResource::NumAlive());
SkDEBUGCODE(REPORTER_ASSERT(reporter, 1 == cache->countScratchEntriesForKey(scratchKey));)
@@ -526,13 +530,13 @@ static void test_remove_scratch_key(skiatest::Reporter* reporter) {
// Repeat for the second resource.
find = cache->findAndRefScratchResource(scratchKey);
- find->cacheAccess().removeScratchKey();
+ find->resourcePriv().removeScratchKey();
REPORTER_ASSERT(reporter, 1 == TestResource::NumAlive());
SkDEBUGCODE(REPORTER_ASSERT(reporter, 0 == cache->countScratchEntriesForKey(scratchKey));)
REPORTER_ASSERT(reporter, 1 == cache->getResourceCount());
// Should be able to call this multiple times with no problem.
- find->cacheAccess().removeScratchKey();
+ find->resourcePriv().removeScratchKey();
REPORTER_ASSERT(reporter, 1 == TestResource::NumAlive());
SkDEBUGCODE(REPORTER_ASSERT(reporter, 0 == cache->countScratchEntriesForKey(scratchKey));)
REPORTER_ASSERT(reporter, 1 == cache->getResourceCount());
@@ -617,8 +621,8 @@ static void test_duplicate_content_key(skiatest::Reporter* reporter) {
b->setSize(12);
// Can't set the same content key on two resources.
- REPORTER_ASSERT(reporter, a->cacheAccess().setContentKey(key));
- REPORTER_ASSERT(reporter, !b->cacheAccess().setContentKey(key));
+ REPORTER_ASSERT(reporter, a->resourcePriv().setContentKey(key));
+ REPORTER_ASSERT(reporter, !b->resourcePriv().setContentKey(key));
// Still have two resources because b is still reffed.
REPORTER_ASSERT(reporter, 2 == cache->getResourceCount());
@@ -664,9 +668,9 @@ static void test_purge_invalidated(skiatest::Reporter* reporter) {
TestResource* b = SkNEW_ARGS(TestResource, (context->getGpu()));
TestResource* c = TestResource::CreateScratch(context->getGpu(),
TestResource::kA_SimulatedProperty);
- a->cacheAccess().setContentKey(key1);
- b->cacheAccess().setContentKey(key2);
- c->cacheAccess().setContentKey(key3);
+ a->resourcePriv().setContentKey(key1);
+ b->resourcePriv().setContentKey(key2);
+ c->resourcePriv().setContentKey(key3);
a->unref();
// hold b until *after* the message is sent.
c->unref();
@@ -729,8 +733,8 @@ static void test_cache_chained_purge(skiatest::Reporter* reporter) {
TestResource* a = SkNEW_ARGS(TestResource, (context->getGpu()));
TestResource* b = SkNEW_ARGS(TestResource, (context->getGpu()));
- a->cacheAccess().setContentKey(key1);
- b->cacheAccess().setContentKey(key2);
+ a->resourcePriv().setContentKey(key1);
+ b->resourcePriv().setContentKey(key2);
// Make a cycle
a->setUnrefWhenDestroyed(b);
@@ -766,11 +770,11 @@ static void test_resource_size_changed(skiatest::Reporter* reporter) {
GrResourceCache* cache = mock.cache();
TestResource* a = SkNEW_ARGS(TestResource, (context->getGpu()));
- a->cacheAccess().setContentKey(key1);
+ a->resourcePriv().setContentKey(key1);
a->unref();
TestResource* b = SkNEW_ARGS(TestResource, (context->getGpu()));
- b->cacheAccess().setContentKey(key2);
+ b->resourcePriv().setContentKey(key2);
b->unref();
REPORTER_ASSERT(reporter, 200 == cache->getResourceBytes());
@@ -794,12 +798,12 @@ static void test_resource_size_changed(skiatest::Reporter* reporter) {
TestResource* a = SkNEW_ARGS(TestResource, (context->getGpu()));
a->setSize(100);
- a->cacheAccess().setContentKey(key1);
+ a->resourcePriv().setContentKey(key1);
a->unref();
TestResource* b = SkNEW_ARGS(TestResource, (context->getGpu()));
b->setSize(100);
- b->cacheAccess().setContentKey(key2);
+ b->resourcePriv().setContentKey(key2);
b->unref();
REPORTER_ASSERT(reporter, 200 == cache->getResourceBytes());
@@ -834,12 +838,12 @@ static void test_large_resource_count(skiatest::Reporter* reporter) {
TestResource* resource;
resource = SkNEW_ARGS(TestResource, (context->getGpu()));
- resource->cacheAccess().setContentKey(key1);
+ resource->resourcePriv().setContentKey(key1);
resource->setSize(1);
resource->unref();
resource = SkNEW_ARGS(TestResource, (context->getGpu()));
- resource->cacheAccess().setContentKey(key2);
+ resource->resourcePriv().setContentKey(key2);
resource->setSize(1);
resource->unref();
}
« no previous file with comments | « src/image/SkSurface_Gpu.cpp ('k') | tests/SurfaceTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698