Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(49)

Side by Side Diff: gm/bigrect.cpp

Issue 1758113005: Add BigRectGM. (Closed) Base URL: https://skia.googlesource.com/skia@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*
2 * Copyright 2016 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 #include "gm.h"
9
10 namespace skiagm {
mtklein 2016/03/07 14:32:12 Generally no need for this. I guess it's fine if
dogben 2016/03/07 16:12:48 Removed.
11
12 // This GM exercises drawing rects with coordinates outside the range of int32.
13 class BigRectGM : public GM {
mtklein 2016/03/07 14:32:12 I think this can use DEF_SIMPLE_GM or DEF_SIMPLE_G
dogben 2016/03/07 16:12:48 Done.
14 public:
15 BigRectGM() {
16 this->setBGColor(sk_tool_utils::color_to_565(0xFFDDDDDD));
17 }
18
19 protected:
20 SkString onShortName() override {
21 return SkString("bigrect");
22 }
23
24 SkISize onISize() override {
25 return SkISize::Make(kWidth, kHeight);
26 }
27
28 void onDraw(SkCanvas* canvas) override {
29 static const SkScalar kBig = SkFloatToScalar(5e10f);
30
31 SkPaint outlinePaint;
32 outlinePaint.setColor(SK_ColorBLUE);
33 outlinePaint.setStyle(SkPaint::kStroke_Style);
34 outlinePaint.setStrokeWidth(0);
35
36 SkPaint outOfBoundsPaint;
37 outOfBoundsPaint.setColor(SK_ColorRED);
38 outOfBoundsPaint.setStyle(SkPaint::kStroke_Style);
39 outOfBoundsPaint.setStrokeWidth(0);
40
41 // Looks like this:
42 // +-+-+--+-+------+
43 // | | | | | +---+
44 // | +-+ | | +---+
45 // | | | |
46 // +------+-+------+
47 // +------+-+------+
48 // | | | |
49 // +---+ | | +-+ |
50 // +---+ | | | | |
51 // +------+-+--+-+-+
52
53 SkRect tl = SkRect::MakeLTRB(SkIntToScalar(5),
54 -kBig,
55 SkIntToScalar(10),
56 SkIntToScalar(10));
57 canvas->drawRect(tl, outlinePaint);
58
59 SkRect tr = SkRect::MakeLTRB(SkIntToScalar(25),
60 SkIntToScalar(5),
61 kBig,
62 SkIntToScalar(10));
63 canvas->drawRect(tr, outlinePaint);
64
65 SkRect br = SkRect::MakeLTRB(SkIntToScalar(25),
66 SkIntToScalar(25),
67 SkIntToScalar(30),
68 kBig);
69 canvas->drawRect(br, outlinePaint);
70
71 SkRect bl = SkRect::MakeLTRB(-kBig,
72 SkIntToScalar(25),
73 SkIntToScalar(10),
74 SkIntToScalar(30));
75 canvas->drawRect(bl, outlinePaint);
76
77 SkRect horiz = SkRect::MakeLTRB(-kBig,
78 SkIntToScalar(15),
79 kBig,
80 SkIntToScalar(20));
81 canvas->drawRect(horiz, outlinePaint);
82
83 SkRect vert = SkRect::MakeLTRB(SkIntToScalar(15),
84 -kBig,
85 SkIntToScalar(20),
86 kBig);
87 canvas->drawRect(vert, outlinePaint);
88
89 SkRect leftBorder = SkRect::MakeLTRB(-2, -1, 0, 35);
90 canvas->drawRect(leftBorder, outlinePaint);
91
92 SkRect topBorder = SkRect::MakeLTRB(-1, -2, 35, 0);
93 canvas->drawRect(topBorder, outlinePaint);
94
95 SkRect rightBorder = SkRect::MakeLTRB(34, -1, 36, 35);
96 canvas->drawRect(rightBorder, outlinePaint);
97
98 SkRect bottomBorder = SkRect::MakeLTRB(-1, 34, 35, 36);
99 canvas->drawRect(bottomBorder, outlinePaint);
100
101 SkRect outOfBounds = SkRect::MakeLTRB(-1, -1, 35, 35);
102 canvas->drawRect(outOfBounds, outOfBoundsPaint);
103 }
104
105 private:
106 static const int kWidth = 35;
107 static const int kHeight = 35;
108
109 typedef GM INHERITED;
110 };
111
112 // Disabled pending skia:5060.
113 // DEF_GM(return new BigRectGM;)
mtklein 2016/03/07 14:32:12 Let's land it on?
dogben 2016/03/07 16:12:48 Sure, I'll add an ignore rule to gold instead.
114 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698