14cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark/*
24cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark* Copyright 2016 Google Inc.
34cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark*
44cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark* Use of this source code is governed by a BSD-style license that can be
54cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark* found in the LICENSE file.
64cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark*/
74cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark
84cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark#include "gm.h"
94cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark#include "SkCanvas.h"
104cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark#include "SkRect.h"
114cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark#include "SkPath.h"
124cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark
134cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclarkDEF_SIMPLE_GM(bug5252, canvas, 500, 500) {
144cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark	canvas->translate(SkIntToScalar(10), SkIntToScalar(20));
154cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark
164cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark	SkPath clip1;
174cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark	clip1.addOval(SkRect::MakeWH(225, 200));
184cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark	canvas->clipPath(clip1); // bug
194cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark
204cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark	SkPath clip2;
214cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark	clip2.addRect(SkRect::MakeWH(220, 200));
224cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark	//canvas->clipPath(clip2); // ok
234cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark
244cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark	SkPaint pa;
254cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark	pa.setStyle(SkPaint::kStroke_Style);
264cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark	pa.setAntiAlias(true);
274cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark	pa.setStrokeWidth(1.0f);
284cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark	for (int i = 0; i < 15; i++)
294cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark	{
304cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark		for (int j = 0; j < 10; j++)
314cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark		{
324cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark			SkAutoCanvasRestore acs(canvas, true);
334cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark
344cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark			canvas->translate(i * 15.f, j * 20.f);
354cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark			canvas->drawRect(SkRect::MakeXYWH(5, 5, 10, 15),pa);
364cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark			SkPath path;
374cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark			path.moveTo(6, 6);
384cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark			path.cubicTo(14, 10, 13, 12, 10, 12);
394cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark			path.cubicTo(7, 15, 8, 17, 14, 18);
404cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark			canvas->drawPath(path, pa);
414cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark		}
424cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark	}
434cba202b7162fb5f364235dd29f0bdbd53a8e33ccaryclark}
44