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"