1 /*
2 * Copyright 2013 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8 /**
9 * Pathologically simple drawing tests, designed to generate consistent
10 * output images across platforms for gm/tests/run.sh
11 */
12
13 #include "gm.h"
14 #include "SkCanvas.h"
15 #include "SkPaint.h"
16
17 class SelfTestGM : public skiagm::GM {
18 public:
SelfTestGM(const char name[],SkColor color)19 SelfTestGM(const char name[], SkColor color) :
20 fName(name), fColor(color) {}
21 const static int kWidth = 300;
22 const static int kHeight = 200;
23
24 protected:
onShortName()25 SkString onShortName() {
26 return fName;
27 }
28
onISize()29 SkISize onISize() { return SkISize::Make(kWidth, kHeight); }
30
onDraw(SkCanvas * canvas)31 virtual void onDraw(SkCanvas* canvas) {
32 SkPaint paint;
33 paint.setStyle(SkPaint::kFill_Style);
34 paint.setColor(fColor);
35 canvas->drawRectCoords(0, 0, SkIntToScalar(kWidth), SkIntToScalar(kHeight), paint);
36 }
37
38 private:
39 const SkString fName;
40 const SkColor fColor;
41 };
42
43 //////////////////////////////////////////////////////////////////////////////
44
45 // We use translucent colors to make sure we are properly handling cases like
46 // those which caused https://code.google.com/p/skia/issues/detail?id=1079
47 // ('gm generating spurious pixel_error messages as of r7258')
48 static SkColor kTranslucentGreen = 0x7700EE00;
49 static SkColor kTranslucentBlue = 0x770000DD;
50
F1(void *)51 static skiagm::GM* F1(void*) {
52 return new SelfTestGM("selftest1", kTranslucentGreen);
53 }
F2(void *)54 static skiagm::GM* F2(void*) {
55 return new SelfTestGM("selftest2", kTranslucentBlue);
56 }
57
58 static skiagm::GMRegistry gR1(F1);
59 static skiagm::GMRegistry gR2(F2);
60