From 4815fe5a0a497b676677fb4e4a0f05c511855490 Mon Sep 17 00:00:00 2001 From: robertphillips Date: Tue, 16 Sep 2014 10:32:43 -0700 Subject: Fix bug in layer hoisting transition to SkRecord backend Care must be taken when setting up the initial CTM matrix for partial SkRecord playbacks b.c. all the setMatrix calls will concatenate with the initial matrix (which may be different then the CTM that is required to draw correctly). R=mtklein@google.com, bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/549143003 --- tests/GpuLayerCacheTest.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'tests/GpuLayerCacheTest.cpp') diff --git a/tests/GpuLayerCacheTest.cpp b/tests/GpuLayerCacheTest.cpp index 83f31f5f06..66117e6a36 100644 --- a/tests/GpuLayerCacheTest.cpp +++ b/tests/GpuLayerCacheTest.cpp @@ -33,9 +33,11 @@ static void create_layers(skiatest::Reporter* reporter, for (int i = 0; i < numToAdd; ++i) { GrCachedLayer* layer = cache->findLayerOrCreate(picture.uniqueID(), idOffset+i+1, idOffset+i+2, + SkIPoint::Make(0, 0), SkMatrix::I()); REPORTER_ASSERT(reporter, layer); - GrCachedLayer* temp = cache->findLayer(picture.uniqueID(), idOffset+i+1, idOffset+i+2, SkMatrix::I()); + GrCachedLayer* temp = cache->findLayer(picture.uniqueID(), idOffset+i+1, idOffset+i+2, + SkIPoint::Make(0, 0), SkMatrix::I()); REPORTER_ASSERT(reporter, temp == layer); REPORTER_ASSERT(reporter, TestingAccess::NumLayers(cache) == idOffset + i + 1); @@ -99,7 +101,8 @@ DEF_GPUTEST(GpuLayerCache, reporter, factory) { create_layers(reporter, &cache, *picture, kInitialNumLayers, 0); for (int i = 0; i < kInitialNumLayers; ++i) { - GrCachedLayer* layer = cache.findLayer(picture->uniqueID(), i+1, i+2, SkMatrix::I()); + GrCachedLayer* layer = cache.findLayer(picture->uniqueID(), i+1, i+2, + SkIPoint::Make(0, 0), SkMatrix::I()); REPORTER_ASSERT(reporter, layer); lock_layer(reporter, &cache, layer); @@ -116,14 +119,15 @@ DEF_GPUTEST(GpuLayerCache, reporter, factory) { // Unlock the textures for (int i = 0; i < kInitialNumLayers; ++i) { - GrCachedLayer* layer = cache.findLayer(picture->uniqueID(), i+1, i+2, SkMatrix::I()); + GrCachedLayer* layer = cache.findLayer(picture->uniqueID(), i+1, i+2, + SkIPoint::Make(0, 0), SkMatrix::I()); REPORTER_ASSERT(reporter, layer); - cache.unlock(layer); } for (int i = 0; i < kInitialNumLayers; ++i) { - GrCachedLayer* layer = cache.findLayer(picture->uniqueID(), i+1, i+2, SkMatrix::I()); + GrCachedLayer* layer = cache.findLayer(picture->uniqueID(), i+1, i+2, + SkIPoint::Make(0, 0), SkMatrix::I()); REPORTER_ASSERT(reporter, layer); REPORTER_ASSERT(reporter, !layer->locked()); @@ -144,7 +148,7 @@ DEF_GPUTEST(GpuLayerCache, reporter, factory) { create_layers(reporter, &cache, *picture, 1, kInitialNumLayers); GrCachedLayer* layer = cache.findLayer(picture->uniqueID(), kInitialNumLayers+1, kInitialNumLayers+2, - SkMatrix::I()); + SkIPoint::Make(0, 0), SkMatrix::I()); REPORTER_ASSERT(reporter, layer); lock_layer(reporter, &cache, layer); @@ -152,7 +156,8 @@ DEF_GPUTEST(GpuLayerCache, reporter, factory) { } for (int i = 0; i < kInitialNumLayers+1; ++i) { - GrCachedLayer* layer = cache.findLayer(picture->uniqueID(), i+1, i+2, SkMatrix::I()); + GrCachedLayer* layer = cache.findLayer(picture->uniqueID(), i+1, i+2, + SkIPoint::Make(0, 0), SkMatrix::I()); // 3 old layers plus the new one should be in the atlas. if (1 == i || 2 == i || 3 == i || 5 == i) { REPORTER_ASSERT(reporter, layer); -- cgit v1.2.3