• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
51 DEF_GM( return new SelfTestGM("selftest1", kTranslucentGreen); )
52 DEF_GM( return new SelfTestGM("selftest2", kTranslucentBlue); )
53