blob: 7128a2267bd0b1264c340f2ea523551b57fcd5e0 [file] [log] [blame]
reed@google.com37f3ae02011-11-28 16:06:04 +00001
2/*
3 * Copyright 2011 Google Inc.
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8#include "Test.h"
9#include "SkBitmap.h"
10#include "SkCanvas.h"
11
12
13static void TestCanvas(skiatest::Reporter* reporter) {
14 SkBitmap bm;
15 bm.setConfig(SkBitmap::kARGB_8888_Config, 256, 256);
16 bm.allocPixels();
17
18 SkCanvas canvas(bm);
19 int n;
20
21 REPORTER_ASSERT(reporter, 1 == canvas.getSaveCount());
22 n = canvas.save();
23 REPORTER_ASSERT(reporter, 1 == n);
24 REPORTER_ASSERT(reporter, 2 == canvas.getSaveCount());
25 canvas.save();
26 canvas.save();
27 REPORTER_ASSERT(reporter, 4 == canvas.getSaveCount());
28 canvas.restoreToCount(2);
29 REPORTER_ASSERT(reporter, 2 == canvas.getSaveCount());
30
31 // should this pin to 1, or be a no-op, or crash?
32 canvas.restoreToCount(0);
33 REPORTER_ASSERT(reporter, 1 == canvas.getSaveCount());
34}
35
36#include "TestClassDef.h"
37DEFINE_TESTCLASS("Canvas", TestCanvasClass, TestCanvas)