Canvas_getLocalClipBounds.cpp 1.1 KB

123456789101112131415161718192021222324
  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=7f60cb030d3f9b2473adbe3e34b19d91
  5. REG_FIDDLE(Canvas_getLocalClipBounds, 256, 256, true, 0) {
  6. void draw(SkCanvas* canvas) {
  7. SkCanvas local(256, 256);
  8. canvas = &local;
  9. SkRect bounds = canvas->getLocalClipBounds();
  10. SkDebugf("left:%g top:%g right:%g bottom:%g\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->clipPath(clipPath);
  16. bounds = canvas->getLocalClipBounds();
  17. SkDebugf("left:%g top:%g right:%g bottom:%g\n",
  18. bounds.fLeft, bounds.fTop, bounds.fRight, bounds.fBottom);
  19. canvas->scale(2, 2);
  20. bounds = canvas->getLocalClipBounds();
  21. SkDebugf("left:%g top:%g right:%g bottom:%g\n",
  22. bounds.fLeft, bounds.fTop, bounds.fRight, bounds.fBottom);
  23. }
  24. } // END FIDDLE