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