| Index: tests/ResourceCacheTest.cpp
|
| diff --git a/tests/ResourceCacheTest.cpp b/tests/ResourceCacheTest.cpp
|
| index fe4c2d6a0298ffe79224071411bf99a97038dfa3..1bb6766b2c1f160a245cd9b3baa3a5e3166e816e 100644
|
| --- a/tests/ResourceCacheTest.cpp
|
| +++ b/tests/ResourceCacheTest.cpp
|
| @@ -10,7 +10,6 @@
|
| // This is a GPU test
|
| #if SK_SUPPORT_GPU
|
| #include "GrContextFactory.h"
|
| -#include "GrResourceCache.h"
|
| #include "SkGpuDevice.h"
|
|
|
| static const int gWidth = 640;
|
| @@ -59,79 +58,6 @@
|
| context->setTextureCacheLimits(oldMaxNum, oldMaxBytes);
|
| }
|
|
|
| -class TestResource : public GrResource {
|
| -public:
|
| - SK_DECLARE_INST_COUNT(TestResource);
|
| - explicit TestResource(GrGpu* gpu)
|
| - : INHERITED(gpu, false)
|
| - , fCache(NULL)
|
| - , fToDelete(NULL) {
|
| - ++fAlive;
|
| - }
|
| -
|
| - ~TestResource() {
|
| - --fAlive;
|
| - if (NULL != fToDelete) {
|
| - // Breaks our little 2-element cycle below.
|
| - fToDelete->setDeleteWhenDestroyed(NULL, NULL);
|
| - fCache->deleteResource(fToDelete->getCacheEntry());
|
| - }
|
| - this->release();
|
| - }
|
| -
|
| - size_t sizeInBytes() const SK_OVERRIDE { return 100; }
|
| -
|
| - static int alive() { return fAlive; }
|
| -
|
| - void setDeleteWhenDestroyed(GrResourceCache* cache, TestResource* resource) {
|
| - fCache = cache;
|
| - fToDelete = resource;
|
| - }
|
| -
|
| -private:
|
| - GrResourceCache* fCache;
|
| - TestResource* fToDelete;
|
| - static int fAlive;
|
| -
|
| - typedef GrResource INHERITED;
|
| -};
|
| -SK_DEFINE_INST_COUNT(TestResource);
|
| -int TestResource::fAlive = 0;
|
| -
|
| -static void test_purge_invalidated(skiatest::Reporter* reporter, GrContext* context) {
|
| - GrCacheID::Domain domain = GrCacheID::GenerateDomain();
|
| - GrCacheID::Key keyData;
|
| - keyData.fData64[0] = 5;
|
| - keyData.fData64[1] = 18;
|
| - GrResourceKey::ResourceType t = GrResourceKey::GenerateResourceType();
|
| - GrResourceKey key(GrCacheID(domain, keyData), t, 0);
|
| -
|
| - GrResourceCache cache(5, 30000);
|
| -
|
| - // Add two resources with the same key that delete each other from the cache when destroyed.
|
| - TestResource* a = new TestResource(context->getGpu());
|
| - TestResource* b = new TestResource(context->getGpu());
|
| - cache.addResource(key, a);
|
| - cache.addResource(key, b);
|
| - // Circle back.
|
| - a->setDeleteWhenDestroyed(&cache, b);
|
| - b->setDeleteWhenDestroyed(&cache, a);
|
| - a->unref();
|
| - b->unref();
|
| -
|
| - // Add a third independent resource also with the same key.
|
| - GrResource* r = new TestResource(context->getGpu());
|
| - cache.addResource(key, r);
|
| - r->unref();
|
| -
|
| - // Invalidate all three, all three should be purged and destroyed.
|
| - REPORTER_ASSERT(reporter, 3 == TestResource::alive());
|
| - const GrResourceInvalidatedMessage msg = { key };
|
| - SkMessageBus<GrResourceInvalidatedMessage>::Post(msg);
|
| - cache.purgeAsNeeded();
|
| - REPORTER_ASSERT(reporter, 0 == TestResource::alive());
|
| -}
|
| -
|
| ////////////////////////////////////////////////////////////////////////////////
|
| static void TestResourceCache(skiatest::Reporter* reporter, GrContextFactory* factory) {
|
| for (int type = 0; type < GrContextFactory::kLastGLContextType; ++type) {
|
| @@ -155,7 +81,6 @@
|
| SkCanvas canvas(device.get());
|
|
|
| test_cache(reporter, context, &canvas);
|
| - test_purge_invalidated(reporter, context);
|
| }
|
| }
|
|
|
|
|