| Index: gm/bigrect.cpp
 | 
| diff --git a/gm/bigrect.cpp b/gm/bigrect.cpp
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..b7ac4c6f5deecf42c52e5bf45949aca4184c19c4
 | 
| --- /dev/null
 | 
| +++ b/gm/bigrect.cpp
 | 
| @@ -0,0 +1,85 @@
 | 
| +/*
 | 
| + * Copyright 2016 Google Inc.
 | 
| + *
 | 
| + * Use of this source code is governed by a BSD-style license that can be
 | 
| + * found in the LICENSE file.
 | 
| + */
 | 
| +
 | 
| +#include "gm.h"
 | 
| +
 | 
| +DEF_SIMPLE_GM(bigrect, canvas, 35, 35) {
 | 
| +    static const SkScalar kBig = SkFloatToScalar(5e10f);
 | 
| +
 | 
| +    SkPaint outlinePaint;
 | 
| +    outlinePaint.setColor(SK_ColorBLUE);
 | 
| +    outlinePaint.setStyle(SkPaint::kStroke_Style);
 | 
| +    outlinePaint.setStrokeWidth(0);
 | 
| +
 | 
| +    SkPaint outOfBoundsPaint;
 | 
| +    outOfBoundsPaint.setColor(SK_ColorRED);
 | 
| +    outOfBoundsPaint.setStyle(SkPaint::kStroke_Style);
 | 
| +    outOfBoundsPaint.setStrokeWidth(0);
 | 
| +
 | 
| +    // Looks like this:
 | 
| +    // +-+-+--+-+------+
 | 
| +    // | | |  | |  +---+
 | 
| +    // | +-+  | |  +---+
 | 
| +    // |      | |      |
 | 
| +    // +------+-+------+
 | 
| +    // +------+-+------+
 | 
| +    // |      | |      |
 | 
| +    // +---+  | |  +-+ |
 | 
| +    // +---+  | |  | | |
 | 
| +    // +------+-+--+-+-+
 | 
| +
 | 
| +    SkRect tl = SkRect::MakeLTRB(SkIntToScalar(5),
 | 
| +                                 -kBig,
 | 
| +                                 SkIntToScalar(10),
 | 
| +                                 SkIntToScalar(10));
 | 
| +    canvas->drawRect(tl, outlinePaint);
 | 
| +
 | 
| +    SkRect tr = SkRect::MakeLTRB(SkIntToScalar(25),
 | 
| +                                 SkIntToScalar(5),
 | 
| +                                 kBig,
 | 
| +                                 SkIntToScalar(10));
 | 
| +    canvas->drawRect(tr, outlinePaint);
 | 
| +
 | 
| +    SkRect br = SkRect::MakeLTRB(SkIntToScalar(25),
 | 
| +                                 SkIntToScalar(25),
 | 
| +                                 SkIntToScalar(30),
 | 
| +                                 kBig);
 | 
| +    canvas->drawRect(br, outlinePaint);
 | 
| +
 | 
| +    SkRect bl = SkRect::MakeLTRB(-kBig,
 | 
| +                                 SkIntToScalar(25),
 | 
| +                                 SkIntToScalar(10),
 | 
| +                                 SkIntToScalar(30));
 | 
| +    canvas->drawRect(bl, outlinePaint);
 | 
| +
 | 
| +    SkRect horiz = SkRect::MakeLTRB(-kBig,
 | 
| +                                    SkIntToScalar(15),
 | 
| +                                    kBig,
 | 
| +                                    SkIntToScalar(20));
 | 
| +    canvas->drawRect(horiz, outlinePaint);
 | 
| +
 | 
| +    SkRect vert = SkRect::MakeLTRB(SkIntToScalar(15),
 | 
| +                                   -kBig,
 | 
| +                                   SkIntToScalar(20),
 | 
| +                                   kBig);
 | 
| +    canvas->drawRect(vert, outlinePaint);
 | 
| +
 | 
| +    SkRect leftBorder = SkRect::MakeLTRB(-2, -1, 0, 35);
 | 
| +    canvas->drawRect(leftBorder, outlinePaint);
 | 
| +
 | 
| +    SkRect topBorder = SkRect::MakeLTRB(-1, -2, 35, 0);
 | 
| +    canvas->drawRect(topBorder, outlinePaint);
 | 
| +
 | 
| +    SkRect rightBorder = SkRect::MakeLTRB(34, -1, 36, 35);
 | 
| +    canvas->drawRect(rightBorder, outlinePaint);
 | 
| +
 | 
| +    SkRect bottomBorder = SkRect::MakeLTRB(-1, 34, 35, 36);
 | 
| +    canvas->drawRect(bottomBorder, outlinePaint);
 | 
| +
 | 
| +    SkRect outOfBounds = SkRect::MakeLTRB(-1, -1, 35, 35);
 | 
| +    canvas->drawRect(outOfBounds, outOfBoundsPaint);
 | 
| +}
 | 
| 
 |