Index: tests/ResourceCacheTest.cpp |
diff --git a/tests/ResourceCacheTest.cpp b/tests/ResourceCacheTest.cpp |
index 31ae9b40e614e5763c896f0846fa89ed5d059f7b..6b7d68c75f35c73d87f0b05e568609e06524350d 100644 |
--- a/tests/ResourceCacheTest.cpp |
+++ b/tests/ResourceCacheTest.cpp |
@@ -120,8 +120,8 @@ public: |
static void ComputeScratchKey(SimulatedProperty property, GrScratchKey* key) { |
static GrScratchKey::ResourceType t = GrScratchKey::GenerateResourceType(); |
GrScratchKey::Builder builder(key, t, kScratchKeyFieldCnt); |
- for (size_t i = 0; i < kScratchKeyFieldCnt; ++i) { |
- builder[i] = i + static_cast<int>(property); |
+ for (int i = 0; i < kScratchKeyFieldCnt; ++i) { |
+ builder[i] = static_cast<uint32_t>(i + property); |
} |
} |
@@ -130,7 +130,7 @@ public: |
} |
private: |
- static const size_t kScratchKeyFieldCnt = 6; |
+ static const int kScratchKeyFieldCnt = 6; |
TestResource(GrGpu* gpu, SimulatedProperty property, ScratchConstructor) |
: INHERITED(gpu, kCached_LifeCycle) |
@@ -209,6 +209,13 @@ static void test_no_key(skiatest::Reporter* reporter) { |
REPORTER_ASSERT(reporter, 0 == cache2->getResourceBytes()); |
} |
+// Each integer passed as a template param creates a new domain. |
+template <int> static void make_content_key(GrContentKey* key, int data) { |
+ static GrContentKey::Domain d = GrContentKey::GenerateDomain(); |
+ GrContentKey::Builder builder(key, d, 1); |
+ builder[0] = data; |
+} |
+ |
static void test_budgeting(skiatest::Reporter* reporter) { |
SkAutoTUnref<GrContext> context(GrContext::CreateMockContext()); |
REPORTER_ASSERT(reporter, SkToBool(context)); |
@@ -221,9 +228,8 @@ static void test_budgeting(skiatest::Reporter* reporter) { |
SkASSERT(0 == cache2->getResourceCount() && 0 == cache2->getResourceBytes()); |
SkASSERT(0 == cache2->getBudgetedResourceCount() && 0 == cache2->getBudgetedResourceBytes()); |
- GrCacheID::Key keyData; |
- memset(&keyData, 0, sizeof(keyData)); |
- GrResourceKey contentKey(GrCacheID(GrCacheID::GenerateDomain(), keyData), 0); |
+ GrContentKey contentKey; |
+ make_content_key<0>(&contentKey, 0); |
// Create a scratch, a content, and a wrapped resource |
TestResource* scratch = |
@@ -241,8 +247,8 @@ static void test_budgeting(skiatest::Reporter* reporter) { |
unbudgeted->setSize(13); |
// Make sure we can't add a content key to the wrapped resource |
- keyData.fData8[0] = 1; |
- GrResourceKey contentKey2(GrCacheID(GrCacheID::GenerateDomain(), keyData), 0); |
+ GrContentKey contentKey2; |
+ make_content_key<0>(&contentKey2, 1); |
REPORTER_ASSERT(reporter, !wrapped->cacheAccess().setContentKey(contentKey2)); |
REPORTER_ASSERT(reporter, NULL == cache2->findAndRefContentResource(contentKey2)); |
@@ -315,9 +321,8 @@ static void test_unbudgeted(skiatest::Reporter* reporter) { |
SkASSERT(0 == cache2->getResourceCount() && 0 == cache2->getResourceBytes()); |
SkASSERT(0 == cache2->getBudgetedResourceCount() && 0 == cache2->getBudgetedResourceBytes()); |
- GrCacheID::Key keyData; |
- memset(&keyData, 0, sizeof(keyData)); |
- GrResourceKey contentKey(GrCacheID(GrCacheID::GenerateDomain(), keyData), 0); |
+ GrContentKey contentKey; |
+ make_content_key<0>(&contentKey, 0); |
TestResource* scratch; |
TestResource* content; |
@@ -576,10 +581,8 @@ static void test_duplicate_content_key(skiatest::Reporter* reporter) { |
cache2->purgeAllUnlocked(); |
SkASSERT(0 == cache2->getResourceCount() && 0 == cache2->getResourceBytes()); |
- GrCacheID::Domain domain = GrCacheID::GenerateDomain(); |
- GrCacheID::Key keyData; |
- memset(&keyData, 0, sizeof(keyData)); |
- GrResourceKey key(GrCacheID(domain, keyData), 0); |
+ GrContentKey key; |
+ make_content_key<0>(&key, 0); |
// Create two resources that we will attempt to register with the same content key. |
TestResource* a = SkNEW_ARGS(TestResource, (context->getGpu())); |
@@ -627,16 +630,10 @@ static void test_purge_invalidated(skiatest::Reporter* reporter) { |
return; |
} |
- GrCacheID::Domain domain = GrCacheID::GenerateDomain(); |
- GrCacheID::Key keyData; |
- memset(&keyData, 0, sizeof(keyData)); |
- |
- keyData.fData64[0] = 1; |
- GrResourceKey key1(GrCacheID(domain, keyData), 0); |
- keyData.fData64[0] = 2; |
- GrResourceKey key2(GrCacheID(domain, keyData), 0); |
- keyData.fData64[0] = 3; |
- GrResourceKey key3(GrCacheID(domain, keyData), 0); |
+ GrContentKey key1, key2, key3; |
+ make_content_key<0>(&key1, 1); |
+ make_content_key<0>(&key2, 2); |
+ make_content_key<0>(&key3, 3); |
context->setResourceCacheLimits(5, 30000); |
GrResourceCache2* cache2 = context->getResourceCache2(); |
@@ -694,15 +691,9 @@ static void test_cache_chained_purge(skiatest::Reporter* reporter) { |
return; |
} |
- GrCacheID::Domain domain = GrCacheID::GenerateDomain(); |
- GrCacheID::Key keyData; |
- memset(&keyData, 0, sizeof(keyData)); |
- |
- keyData.fData64[0] = 1; |
- GrResourceKey key1(GrCacheID(domain, keyData), 0); |
- |
- keyData.fData64[0] = 2; |
- GrResourceKey key2(GrCacheID(domain, keyData), 0); |
+ GrContentKey key1, key2; |
+ make_content_key<0>(&key1, 1); |
+ make_content_key<0>(&key2, 2); |
{ |
context->setResourceCacheLimits(3, 30000); |
@@ -745,17 +736,9 @@ static void test_resource_size_changed(skiatest::Reporter* reporter) { |
return; |
} |
- GrCacheID::Domain domain = GrCacheID::GenerateDomain(); |
- |
- GrCacheID::Key key1Data; |
- key1Data.fData64[0] = 0; |
- key1Data.fData64[1] = 0; |
- GrResourceKey key1(GrCacheID(domain, key1Data), 0); |
- |
- GrCacheID::Key key2Data; |
- key2Data.fData64[0] = 1; |
- key2Data.fData64[1] = 0; |
- GrResourceKey key2(GrCacheID(domain, key2Data), 0); |
+ GrContentKey key1, key2; |
+ make_content_key<0>(&key1, 1); |
+ make_content_key<0>(&key2, 2); |
// Test changing resources sizes (both increase & decrease). |
{ |
@@ -832,25 +815,21 @@ static void test_large_resource_count(skiatest::Reporter* reporter) { |
cache2->purgeAllUnlocked(); |
SkASSERT(0 == cache2->getResourceCount() && 0 == cache2->getResourceBytes()); |
- GrCacheID::Domain domain0 = GrCacheID::GenerateDomain(); |
- GrCacheID::Domain domain1 = GrCacheID::GenerateDomain(); |
- |
- GrCacheID::Key keyData; |
- memset(&keyData, 0, sizeof(keyData)); |
for (int i = 0; i < kResourceCnt; ++i) { |
+ GrContentKey key1, key2; |
+ make_content_key<1>(&key1, i); |
+ make_content_key<2>(&key2, i); |
+ |
TestResource* resource; |
- keyData.fData32[0] = i; |
- GrResourceKey key0(GrCacheID(domain0, keyData), 0); |
resource = SkNEW_ARGS(TestResource, (context->getGpu())); |
- resource->cacheAccess().setContentKey(key0); |
+ resource->cacheAccess().setContentKey(key1); |
resource->setSize(1); |
resource->unref(); |
- GrResourceKey key1(GrCacheID(domain1, keyData), 0); |
resource = SkNEW_ARGS(TestResource, (context->getGpu())); |
- resource->cacheAccess().setContentKey(key1); |
+ resource->cacheAccess().setContentKey(key2); |
resource->setSize(1); |
resource->unref(); |
} |
@@ -861,11 +840,12 @@ static void test_large_resource_count(skiatest::Reporter* reporter) { |
REPORTER_ASSERT(reporter, cache2->getResourceBytes() == 2 * kResourceCnt); |
REPORTER_ASSERT(reporter, cache2->getResourceCount() == 2 * kResourceCnt); |
for (int i = 0; i < kResourceCnt; ++i) { |
- keyData.fData32[0] = i; |
- GrResourceKey key0(GrCacheID(domain0, keyData), 0); |
- REPORTER_ASSERT(reporter, cache2->hasContentKey(key0)); |
- GrResourceKey key1(GrCacheID(domain0, keyData), 0); |
+ GrContentKey key1, key2; |
+ make_content_key<1>(&key1, i); |
+ make_content_key<2>(&key2, i); |
+ |
REPORTER_ASSERT(reporter, cache2->hasContentKey(key1)); |
+ REPORTER_ASSERT(reporter, cache2->hasContentKey(key2)); |
} |
cache2->purgeAllUnlocked(); |
@@ -876,11 +856,12 @@ static void test_large_resource_count(skiatest::Reporter* reporter) { |
REPORTER_ASSERT(reporter, cache2->getResourceCount() == 0); |
for (int i = 0; i < kResourceCnt; ++i) { |
- keyData.fData32[0] = i; |
- GrResourceKey key0(GrCacheID(domain0, keyData), 0); |
- REPORTER_ASSERT(reporter, !cache2->hasContentKey(key0)); |
- GrResourceKey key1(GrCacheID(domain0, keyData), 0); |
+ GrContentKey key1, key2; |
+ make_content_key<1>(&key1, i); |
+ make_content_key<2>(&key2, i); |
+ |
REPORTER_ASSERT(reporter, !cache2->hasContentKey(key1)); |
+ REPORTER_ASSERT(reporter, !cache2->hasContentKey(key2)); |
} |
} |