Add a simpler key type for scratch resource keys.
BUG=skia:2889
Review URL: https://codereview.chromium.org/815833004
diff --git a/tests/ResourceCacheTest.cpp b/tests/ResourceCacheTest.cpp
index f925b07..a1a594e 100644
--- a/tests/ResourceCacheTest.cpp
+++ b/tests/ResourceCacheTest.cpp
@@ -82,7 +82,7 @@
this->registerWithCache();
}
- TestResource(GrGpu* gpu, const GrResourceKey& scratchKey)
+ TestResource(GrGpu* gpu, const GrScratchKey& scratchKey)
: INHERITED(gpu, false)
, fToDelete(NULL)
, fSize(kDefaultSize) {
@@ -173,6 +173,11 @@
REPORTER_ASSERT(reporter, 0 == cache2->getResourceBytes());
}
+static void make_scratch_key(GrScratchKey* key) {
+ static GrScratchKey::ResourceType t = GrScratchKey::GenerateResourceType();
+ GrScratchKey::Builder builder(key, t, 0);
+}
+
static void test_budgeting(skiatest::Reporter* reporter) {
SkAutoTUnref<GrContext> context(GrContext::CreateMockContext());
REPORTER_ASSERT(reporter, SkToBool(context));
@@ -185,11 +190,12 @@
SkASSERT(0 == cache2->getResourceCount() && 0 == cache2->getResourceBytes());
SkASSERT(0 == cache2->getBudgetedResourceCount() && 0 == cache2->getBudgetedResourceBytes());
+ GrScratchKey scratchKey;
+ make_scratch_key(&scratchKey);
+
GrCacheID::Key keyData;
memset(&keyData, 0, sizeof(keyData));
- GrResourceKey::ResourceType t = GrResourceKey::GenerateResourceType();
- GrResourceKey scratchKey(GrCacheID(GrResourceKey::ScratchDomain(), keyData), t, 0);
- GrResourceKey contentKey(GrCacheID(GrCacheID::GenerateDomain(), keyData), t, 0);
+ GrResourceKey contentKey(GrCacheID(GrCacheID::GenerateDomain(), keyData), 0);
// Create a scratch, a content, and a wrapped resource
TestResource* scratch = new TestResource(context->getGpu(), scratchKey);
@@ -205,7 +211,7 @@
// Make sure we can't add a content key to the wrapped resource
keyData.fData8[0] = 1;
- GrResourceKey contentKey2(GrCacheID(GrCacheID::GenerateDomain(), keyData), t, 0);
+ GrResourceKey contentKey2(GrCacheID(GrCacheID::GenerateDomain(), keyData), 0);
REPORTER_ASSERT(reporter, !wrapped->cacheAccess().setContentKey(contentKey2));
REPORTER_ASSERT(reporter, NULL == cache2->findAndRefContentResource(contentKey2));
@@ -277,11 +283,8 @@
cache2->purgeAllUnlocked();
SkASSERT(0 == cache2->getResourceCount() && 0 == cache2->getResourceBytes());
- GrCacheID::Key keyData;
- memset(&keyData, 0, sizeof(keyData));
- GrCacheID::Domain domain = GrResourceKey::ScratchDomain();
- GrResourceKey::ResourceType t = GrResourceKey::GenerateResourceType();
- GrResourceKey scratchKey(GrCacheID(domain, keyData), t, 0);
+ GrScratchKey scratchKey;
+ make_scratch_key(&scratchKey);
// Create two resources that have the same scratch key.
TestResource* a = new TestResource(context->getGpu(), scratchKey);
@@ -324,11 +327,8 @@
cache2->purgeAllUnlocked();
SkASSERT(0 == cache2->getResourceCount() && 0 == cache2->getResourceBytes());
- GrCacheID::Key keyData;
- memset(&keyData, 0, sizeof(keyData));
- GrCacheID::Domain domain = GrResourceKey::ScratchDomain();
- GrResourceKey::ResourceType t = GrResourceKey::GenerateResourceType();
- GrResourceKey scratchKey(GrCacheID(domain, keyData), t, 0);
+ GrScratchKey scratchKey;
+ make_scratch_key(&scratchKey);
// Create two resources that have the same scratch key.
TestResource* a = new TestResource(context->getGpu(), scratchKey);
@@ -389,8 +389,7 @@
GrCacheID::Domain domain = GrCacheID::GenerateDomain();
GrCacheID::Key keyData;
memset(&keyData, 0, sizeof(keyData));
- GrResourceKey::ResourceType t = GrResourceKey::GenerateResourceType();
- GrResourceKey key(GrCacheID(domain, keyData), t, 0);
+ GrResourceKey key(GrCacheID(domain, keyData), 0);
// Create two resources that we will attempt to register with the same content key.
TestResource* a = new TestResource(context->getGpu());
@@ -442,14 +441,12 @@
GrCacheID::Key keyData;
memset(&keyData, 0, sizeof(keyData));
- GrResourceKey::ResourceType t = GrResourceKey::GenerateResourceType();
-
keyData.fData64[0] = 1;
- GrResourceKey key1(GrCacheID(domain, keyData), t, 0);
+ GrResourceKey key1(GrCacheID(domain, keyData), 0);
keyData.fData64[0] = 2;
- GrResourceKey key2(GrCacheID(domain, keyData), t, 0);
+ GrResourceKey key2(GrCacheID(domain, keyData), 0);
keyData.fData64[0] = 3;
- GrResourceKey key3(GrCacheID(domain, keyData), t, 0);
+ GrResourceKey key3(GrCacheID(domain, keyData), 0);
context->setResourceCacheLimits(5, 30000);
GrResourceCache2* cache2 = context->getResourceCache2();
@@ -510,13 +507,12 @@
GrCacheID::Domain domain = GrCacheID::GenerateDomain();
GrCacheID::Key keyData;
memset(&keyData, 0, sizeof(keyData));
- GrResourceKey::ResourceType t = GrResourceKey::GenerateResourceType();
keyData.fData64[0] = 1;
- GrResourceKey key1(GrCacheID(domain, keyData), t, 0);
+ GrResourceKey key1(GrCacheID(domain, keyData), 0);
keyData.fData64[0] = 2;
- GrResourceKey key2(GrCacheID(domain, keyData), t, 0);
+ GrResourceKey key2(GrCacheID(domain, keyData), 0);
{
context->setResourceCacheLimits(3, 30000);
@@ -560,17 +556,16 @@
}
GrCacheID::Domain domain = GrCacheID::GenerateDomain();
- GrResourceKey::ResourceType t = GrResourceKey::GenerateResourceType();
GrCacheID::Key key1Data;
key1Data.fData64[0] = 0;
key1Data.fData64[1] = 0;
- GrResourceKey key1(GrCacheID(domain, key1Data), t, 0);
+ GrResourceKey key1(GrCacheID(domain, key1Data), 0);
GrCacheID::Key key2Data;
key2Data.fData64[0] = 1;
key2Data.fData64[1] = 0;
- GrResourceKey key2(GrCacheID(domain, key2Data), t, 0);
+ GrResourceKey key2(GrCacheID(domain, key2Data), 0);
// Test changing resources sizes (both increase & decrease).
{
@@ -649,7 +644,6 @@
GrCacheID::Domain domain0 = GrCacheID::GenerateDomain();
GrCacheID::Domain domain1 = GrCacheID::GenerateDomain();
- GrResourceKey::ResourceType t = GrResourceKey::GenerateResourceType();
GrCacheID::Key keyData;
memset(&keyData, 0, sizeof(keyData));
@@ -658,13 +652,13 @@
TestResource* resource;
keyData.fData32[0] = i;
- GrResourceKey key0(GrCacheID(domain0, keyData), t, 0);
+ GrResourceKey key0(GrCacheID(domain0, keyData), 0);
resource = SkNEW_ARGS(TestResource, (context->getGpu()));
resource->cacheAccess().setContentKey(key0);
resource->setSize(1);
resource->unref();
- GrResourceKey key1(GrCacheID(domain1, keyData), t, 0);
+ GrResourceKey key1(GrCacheID(domain1, keyData), 0);
resource = SkNEW_ARGS(TestResource, (context->getGpu()));
resource->cacheAccess().setContentKey(key1);
resource->setSize(1);
@@ -678,9 +672,9 @@
REPORTER_ASSERT(reporter, cache2->getResourceCount() == 2 * kResourceCnt);
for (int i = 0; i < kResourceCnt; ++i) {
keyData.fData32[0] = i;
- GrResourceKey key0(GrCacheID(domain0, keyData), t, 0);
+ GrResourceKey key0(GrCacheID(domain0, keyData), 0);
REPORTER_ASSERT(reporter, cache2->hasContentKey(key0));
- GrResourceKey key1(GrCacheID(domain0, keyData), t, 0);
+ GrResourceKey key1(GrCacheID(domain0, keyData), 0);
REPORTER_ASSERT(reporter, cache2->hasContentKey(key1));
}
@@ -693,9 +687,9 @@
for (int i = 0; i < kResourceCnt; ++i) {
keyData.fData32[0] = i;
- GrResourceKey key0(GrCacheID(domain0, keyData), t, 0);
+ GrResourceKey key0(GrCacheID(domain0, keyData), 0);
REPORTER_ASSERT(reporter, !cache2->hasContentKey(key0));
- GrResourceKey key1(GrCacheID(domain0, keyData), t, 0);
+ GrResourceKey key1(GrCacheID(domain0, keyData), 0);
REPORTER_ASSERT(reporter, !cache2->hasContentKey(key1));
}
}