| Index: tests/GpuLayerCacheTest.cpp
|
| diff --git a/tests/GpuLayerCacheTest.cpp b/tests/GpuLayerCacheTest.cpp
|
| index d5c2dde4add34fd60d260a0948fe03b5f93658a7..8da2b9ea8d28b1a2182fd6d77e006dbe7a5d1f3d 100644
|
| --- a/tests/GpuLayerCacheTest.cpp
|
| +++ b/tests/GpuLayerCacheTest.cpp
|
| @@ -49,92 +49,100 @@ static void create_layers(skiatest::Reporter* reporter,
|
| // locking & unlocking textures).
|
| // TODO: need to add checks on VRAM usage!
|
| DEF_GPUTEST(GpuLayerCache, reporter, factory) {
|
| + for (int i= 0; i < GrContextFactory::kGLContextTypeCnt; ++i) {
|
| + GrContextFactory::GLContextType glCtxType = (GrContextFactory::GLContextType) i;
|
|
|
| - GrContext* context = factory->get(GrContextFactory::kNative_GLContextType);
|
| - if (NULL == context) {
|
| - return;
|
| - }
|
| + if (!GrContextFactory::IsRenderingGLContext(glCtxType)) {
|
| + continue;
|
| + }
|
|
|
| - SkPictureRecorder recorder;
|
| - recorder.beginRecording(1, 1);
|
| - SkAutoTUnref<const SkPicture> picture(recorder.endRecording());
|
| + GrContext* context = factory->get(glCtxType);
|
|
|
| - GrLayerCache cache(context);
|
| + if (NULL == context) {
|
| + continue;
|
| + }
|
|
|
| - create_layers(reporter, &cache, *picture);
|
| + SkPictureRecorder recorder;
|
| + recorder.beginRecording(1, 1);
|
| + SkAutoTUnref<const SkPicture> picture(recorder.endRecording());
|
|
|
| - // Lock the layers making them all 512x512
|
| - GrTextureDesc desc;
|
| - desc.fWidth = 512;
|
| - desc.fHeight = 512;
|
| - desc.fConfig = kSkia8888_GrPixelConfig;
|
| + GrLayerCache cache(context);
|
|
|
| - for (int i = 0; i < kNumLayers; ++i) {
|
| - GrCachedLayer* layer = cache.findLayer(picture, i);
|
| - REPORTER_ASSERT(reporter, NULL != layer);
|
| + create_layers(reporter, &cache, *picture);
|
| +
|
| + // Lock the layers making them all 512x512
|
| + GrTextureDesc desc;
|
| + desc.fWidth = 512;
|
| + desc.fHeight = 512;
|
| + desc.fConfig = kSkia8888_GrPixelConfig;
|
|
|
| - bool foundInCache = cache.lock(layer, desc);
|
| - REPORTER_ASSERT(reporter, !foundInCache);
|
| - foundInCache = cache.lock(layer, desc);
|
| - REPORTER_ASSERT(reporter, foundInCache);
|
| + for (int i = 0; i < kNumLayers; ++i) {
|
| + GrCachedLayer* layer = cache.findLayer(picture, i);
|
| + REPORTER_ASSERT(reporter, NULL != layer);
|
|
|
| - REPORTER_ASSERT(reporter, NULL != layer->texture());
|
| + bool foundInCache = cache.lock(layer, desc);
|
| + REPORTER_ASSERT(reporter, !foundInCache);
|
| + foundInCache = cache.lock(layer, desc);
|
| + REPORTER_ASSERT(reporter, foundInCache);
|
| +
|
| + REPORTER_ASSERT(reporter, NULL != layer->texture());
|
| #if USE_ATLAS
|
| - // The first 4 layers should be in the atlas (and thus have non-empty
|
| - // rects)
|
| - if (i < 4) {
|
| - REPORTER_ASSERT(reporter, layer->isAtlased());
|
| - } else {
|
| + // The first 4 layers should be in the atlas (and thus have non-empty
|
| + // rects)
|
| + if (i < 4) {
|
| + REPORTER_ASSERT(reporter, layer->isAtlased());
|
| + } else {
|
| #endif
|
| REPORTER_ASSERT(reporter, !layer->isAtlased());
|
| #if USE_ATLAS
|
| - }
|
| + }
|
| #endif
|
| - }
|
| + }
|
|
|
| - // Unlock the textures
|
| - for (int i = 0; i < kNumLayers; ++i) {
|
| - GrCachedLayer* layer = cache.findLayer(picture, i);
|
| - REPORTER_ASSERT(reporter, NULL != layer);
|
| + // Unlock the textures
|
| + for (int i = 0; i < kNumLayers; ++i) {
|
| + GrCachedLayer* layer = cache.findLayer(picture, i);
|
| + REPORTER_ASSERT(reporter, NULL != layer);
|
|
|
| - cache.unlock(layer);
|
| - }
|
| + cache.unlock(layer);
|
| + }
|
|
|
| - for (int i = 0; i < kNumLayers; ++i) {
|
| - GrCachedLayer* layer = cache.findLayer(picture, i);
|
| - REPORTER_ASSERT(reporter, NULL != layer);
|
| + for (int i = 0; i < kNumLayers; ++i) {
|
| + GrCachedLayer* layer = cache.findLayer(picture, i);
|
| + REPORTER_ASSERT(reporter, NULL != layer);
|
|
|
| #if USE_ATLAS
|
| - // The first 4 layers should be in the atlas (and thus do not
|
| - // currently unlock). The final layer should be unlocked.
|
| - if (i < 4) {
|
| - REPORTER_ASSERT(reporter, NULL != layer->texture());
|
| - REPORTER_ASSERT(reporter, layer->isAtlased());
|
| - } else {
|
| + // The first 4 layers should be in the atlas (and thus do not
|
| + // currently unlock). The final layer should be unlocked.
|
| + if (i < 4) {
|
| + REPORTER_ASSERT(reporter, NULL != layer->texture());
|
| + REPORTER_ASSERT(reporter, layer->isAtlased());
|
| + } else {
|
| #endif
|
| - REPORTER_ASSERT(reporter, NULL == layer->texture());
|
| - REPORTER_ASSERT(reporter, !layer->isAtlased());
|
| + REPORTER_ASSERT(reporter, NULL == layer->texture());
|
| + REPORTER_ASSERT(reporter, !layer->isAtlased());
|
| #if USE_ATLAS
|
| - }
|
| + }
|
| #endif
|
| - }
|
| + }
|
|
|
| - // Free them all SkGpuDevice-style. This will not free up the
|
| - // atlas' texture but will eliminate all the layers.
|
| - cache.purge(picture);
|
| + // Free them all SkGpuDevice-style. This will not free up the
|
| + // atlas' texture but will eliminate all the layers.
|
| + cache.purge(picture);
|
|
|
| - REPORTER_ASSERT(reporter, GetNumLayers::NumLayers(&cache) == 0);
|
| - // TODO: add VRAM/resource cache check here
|
| + REPORTER_ASSERT(reporter, GetNumLayers::NumLayers(&cache) == 0);
|
| + // TODO: add VRAM/resource cache check here
|
| #if 0
|
| - // Re-create the layers
|
| - create_layers(reporter, &cache, picture);
|
| + // Re-create the layers
|
| + create_layers(reporter, &cache, picture);
|
|
|
| - // Free them again GrContext-style. This should free up everything.
|
| - cache.freeAll();
|
| + // Free them again GrContext-style. This should free up everything.
|
| + cache.freeAll();
|
|
|
| - REPORTER_ASSERT(reporter, GetNumLayers::NumLayers(&cache) == 0);
|
| - // TODO: add VRAM/resource cache check here
|
| + REPORTER_ASSERT(reporter, GetNumLayers::NumLayers(&cache) == 0);
|
| + // TODO: add VRAM/resource cache check here
|
| #endif
|
| + }
|
| }
|
|
|
| #endif
|
|
|