Path_FillType_a.cpp 1.1 KB

123456789101112131415161718192021222324252627
  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=71fc6c069c377d808799f2453edabaf5
  5. REG_FIDDLE(Path_FillType_a, 256, 100, false, 0) {
  6. void draw(SkCanvas* canvas) {
  7. SkPath path;
  8. path.addRect({10, 10, 30, 30}, SkPath::kCW_Direction);
  9. path.addRect({20, 20, 40, 40}, SkPath::kCW_Direction);
  10. path.addRect({10, 60, 30, 80}, SkPath::kCW_Direction);
  11. path.addRect({20, 70, 40, 90}, SkPath::kCCW_Direction);
  12. SkPaint strokePaint;
  13. strokePaint.setStyle(SkPaint::kStroke_Style);
  14. SkRect clipRect = {0, 0, 51, 100};
  15. canvas->drawPath(path, strokePaint);
  16. SkPaint fillPaint;
  17. for (auto fillType : { SkPath::kWinding_FillType, SkPath::kEvenOdd_FillType,
  18. SkPath::kInverseWinding_FillType, SkPath::kInverseEvenOdd_FillType } ) {
  19. canvas->translate(51, 0);
  20. canvas->save();
  21. canvas->clipRect(clipRect);
  22. path.setFillType(fillType);
  23. canvas->drawPath(path, fillPaint);
  24. canvas->restore();
  25. }
  26. }
  27. } // END FIDDLE