From 55b29b255187a65c056029f26442b9e9c9d6b2cd Mon Sep 17 00:00:00 2001 From: fmalita Date: Wed, 20 Jan 2016 11:17:39 -0800 Subject: Convert CanvasStateTest to the new saveLayer API The test needs to still work when SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG is defined but SK_SUPPORT_LEGACY_SAVEFLAGS is not. R=reed@google.com,robertphillips@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1610193002 Review URL: https://codereview.chromium.org/1610193002 --- tests/CanvasStateTest.cpp | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) (limited to 'tests/CanvasStateTest.cpp') diff --git a/tests/CanvasStateTest.cpp b/tests/CanvasStateTest.cpp index 4f5fb463e3..bd7c325ca2 100644 --- a/tests/CanvasStateTest.cpp +++ b/tests/CanvasStateTest.cpp @@ -14,6 +14,7 @@ #include "SkPaint.h" #include "SkRRect.h" #include "SkRect.h" +#include "SkTLazy.h" #include "Test.h" // dlopen and the library flag are only used for tests which require this flag. @@ -71,9 +72,10 @@ DEF_TEST(CanvasState_test_complex_layers, reporter) { }; const int layerAlpha[] = { 255, 255, 0 }; - const SkCanvas::SaveFlags flags[] = { SkCanvas::kARGB_NoClipLayer_SaveFlag, - SkCanvas::kARGB_ClipLayer_SaveFlag, - SkCanvas::kARGB_NoClipLayer_SaveFlag + const SkCanvas::SaveLayerFlags flags[] = { + static_cast(SkCanvas::kDontClipToLayer_Legacy_SaveLayerFlag), + 0, + static_cast(SkCanvas::kDontClipToLayer_Legacy_SaveLayerFlag), }; REPORTER_ASSERT(reporter, sizeof(layerAlpha) == sizeof(flags)); @@ -105,8 +107,13 @@ DEF_TEST(CanvasState_test_complex_layers, reporter) { canvas.drawColor(SK_ColorRED); for (size_t k = 0; k < SK_ARRAY_COUNT(layerAlpha); ++k) { + SkTLazy paint; + if (layerAlpha[k] != 0xFF) { + paint.init()->setAlpha(layerAlpha[k]); + } + // draw a rect within the layer's bounds and again outside the layer's bounds - canvas.saveLayerAlpha(&rect, layerAlpha[k], flags[k]); + canvas.saveLayer(SkCanvas::SaveLayerRec(&rect, paint.getMaybeNull(), flags[k])); if (j) { // Capture from the first Skia. @@ -172,9 +179,10 @@ DEF_TEST(CanvasState_test_complex_clips, reporter) { SkRegion::kIntersect_Op, SkRegion::kReplace_Op, }; - const SkCanvas::SaveFlags flags[] = { SkCanvas::kARGB_NoClipLayer_SaveFlag, - SkCanvas::kARGB_ClipLayer_SaveFlag, - SkCanvas::kARGB_NoClipLayer_SaveFlag, + const SkCanvas::SaveLayerFlags flags[] = { + static_cast(SkCanvas::kDontClipToLayer_Legacy_SaveLayerFlag), + 0, + static_cast(SkCanvas::kDontClipToLayer_Legacy_SaveLayerFlag), }; REPORTER_ASSERT(reporter, sizeof(clipOps) == sizeof(flags)); @@ -205,9 +213,11 @@ DEF_TEST(CanvasState_test_complex_clips, reporter) { SkRegion localRegion = clipRegion; + SkPaint paint; + paint.setAlpha(128); for (size_t j = 0; j < SK_ARRAY_COUNT(flags); ++j) { SkRect layerBounds = SkRect::Make(layerRect); - canvas.saveLayerAlpha(&layerBounds, 128, flags[j]); + canvas.saveLayer(SkCanvas::SaveLayerRec(&layerBounds, &paint, flags[j])); if (i) { SkCanvasState* state = SkCanvasStateUtils::CaptureCanvasState(&canvas); @@ -318,7 +328,9 @@ DEF_TEST(CanvasState_test_saveLayer_clip, reporter) { // Check that saveLayer without the kClipToLayer_SaveFlag leaves the // clip stack unchanged. - canvas.saveLayer(&bounds, nullptr, SkCanvas::kARGB_NoClipLayer_SaveFlag); + canvas.saveLayer(SkCanvas::SaveLayerRec(&bounds, + nullptr, + SkCanvas::kDontClipToLayer_Legacy_SaveLayerFlag)); SkRect clipStackBounds; SkClipStack::BoundsType boundsType; canvas.getClipStack()->getBounds(&clipStackBounds, &boundsType); @@ -334,7 +346,7 @@ DEF_TEST(CanvasState_test_saveLayer_clip, reporter) { // Check that saveLayer with the kClipToLayer_SaveFlag sets the clip // stack to the layer bounds. - canvas.saveLayer(&bounds, nullptr, SkCanvas::kARGB_ClipLayer_SaveFlag); + canvas.saveLayer(&bounds, nullptr); canvas.getClipStack()->getBounds(&clipStackBounds, &boundsType); REPORTER_ASSERT(reporter, clipStackBounds.width() == LAYER_WIDTH); REPORTER_ASSERT(reporter, clipStackBounds.height() == LAYER_HEIGHT); -- cgit v1.2.3