1// Copyright 2019 Google LLC. 2// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. 3#include "tools/fiddle/examples.h" 4// HASH=556832ac5711af662a98c21c547185e9 5REG_FIDDLE(Canvas_getDeviceClipBounds, 256, 256, true, 0) { 6void draw(SkCanvas* canvas) { 7 SkCanvas device(256, 256); 8 canvas = &device; 9 SkIRect bounds = canvas->getDeviceClipBounds(); 10 SkDebugf("left:%d top:%d right:%d bottom:%d\n", 11 bounds.fLeft, bounds.fTop, bounds.fRight, bounds.fBottom); 12 SkPoint clipPoints[] = {{30, 130}, {120, 130}, {120, 230} }; 13 SkPath clipPath; 14 clipPath.addPoly(clipPoints, SK_ARRAY_COUNT(clipPoints), true); 15 canvas->save(); 16 canvas->clipPath(clipPath); 17 bounds = canvas->getDeviceClipBounds(); 18 SkDebugf("left:%d top:%d right:%d bottom:%d\n", 19 bounds.fLeft, bounds.fTop, bounds.fRight, bounds.fBottom); 20 canvas->restore(); 21 canvas->scale(1.f/2, 1.f/2); 22 canvas->clipPath(clipPath); 23 bounds = canvas->getDeviceClipBounds(); 24 SkDebugf("left:%d top:%d right:%d bottom:%d\n", 25 bounds.fLeft, bounds.fTop, bounds.fRight, bounds.fBottom); 26} 27} // END FIDDLE 28