blob: f6a7d93b76aab2731fde3a052ba04be33e49b3a5 [file] [log] [blame]
Mike Kleinf8153012019-08-12 13:11:26 -04001/*
2 * Copyright 2019 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/gm.h"
9#include "include/core/SkCanvas.h"
Kevin Lubickcb4beb22022-09-14 10:51:46 -040010#include "include/core/SkPathEffect.h"
Mike Kleinf8153012019-08-12 13:11:26 -040011#include "include/effects/SkDashPathEffect.h"
12
13// Reproduces skbug.com/9331, drawing differently in debug and release builds.
14DEF_SIMPLE_GM(bug9331, canvas, 256, 256) {
15 SkRect clip = {0, 0, 200, 150};
16 {
17 SkPaint paint;
18 paint.setColor(0x44FF0000);
19 canvas->drawRect(clip, paint);
20 }
21
22 auto draw = [&](SkColor color, SkRect clip) {
23 SkScalar intervals[] = { 13, 17 };
24 SkScalar phase = 9;
25
26 SkPaint paint;
27 paint.setColor(color);
28 paint.setStyle(SkPaint::kStroke_Style);
29 paint.setStrokeWidth(10);
Herb Derbyc37b3862022-06-21 09:49:17 -040030 paint.setPathEffect(SkDashPathEffect::Make(intervals, std::size(intervals), phase));
Mike Kleinf8153012019-08-12 13:11:26 -040031
32 canvas->save();
33 canvas->clipRect(clip);
34 canvas->drawRect({50,50, 150,150}, paint);
35 canvas->restore();
36 };
37
38 draw(0xFF000000, clip);
39 draw(0xFF0000FF, clip.makeOffset(0,150));
40}