add canvas::isDrawingToLayer(), as a fast query for chrome; faster than
setting up a drawiter and counting the layers.
git-svn-id: http://skia.googlecode.com/svn/trunk@2875 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/tests/CanvasTest.cpp b/tests/CanvasTest.cpp
index 7128a22..da1fafd 100644
--- a/tests/CanvasTest.cpp
+++ b/tests/CanvasTest.cpp
@@ -9,6 +9,34 @@
#include "SkBitmap.h"
#include "SkCanvas.h"
+static void test_isDrawingToLayer(skiatest::Reporter* reporter) {
+ SkBitmap bm;
+ bm.setConfig(SkBitmap::kARGB_8888_Config, 256, 256);
+ bm.allocPixels();
+
+ SkCanvas canvas(bm);
+
+ REPORTER_ASSERT(reporter, !canvas.isDrawingToLayer());
+ canvas.save();
+ REPORTER_ASSERT(reporter, !canvas.isDrawingToLayer());
+
+ const SkRect* bounds = NULL; // null means include entire bounds
+ const SkPaint* paint = NULL;
+
+ canvas.saveLayer(bounds, paint);
+ REPORTER_ASSERT(reporter, canvas.isDrawingToLayer());
+ canvas.restore();
+ REPORTER_ASSERT(reporter, !canvas.isDrawingToLayer());
+
+ canvas.saveLayer(bounds, paint);
+ canvas.saveLayer(bounds, paint);
+ REPORTER_ASSERT(reporter, canvas.isDrawingToLayer());
+ canvas.restore();
+ REPORTER_ASSERT(reporter, canvas.isDrawingToLayer());
+ canvas.restore();
+ // now layer count should be 0
+ REPORTER_ASSERT(reporter, !canvas.isDrawingToLayer());
+}
static void TestCanvas(skiatest::Reporter* reporter) {
SkBitmap bm;
@@ -31,6 +59,8 @@
// should this pin to 1, or be a no-op, or crash?
canvas.restoreToCount(0);
REPORTER_ASSERT(reporter, 1 == canvas.getSaveCount());
+
+ test_isDrawingToLayer(reporter);
}
#include "TestClassDef.h"