use pathbuilder
Change-Id: I996e4ad9a603db42d9ae750488db44ee3e84d742
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/312637
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
diff --git a/gm/blurcircles2.cpp b/gm/blurcircles2.cpp
index 82cadf1..c30d363 100644
--- a/gm/blurcircles2.cpp
+++ b/gm/blurcircles2.cpp
@@ -11,7 +11,7 @@
#include "include/core/SkColor.h"
#include "include/core/SkMaskFilter.h"
#include "include/core/SkPaint.h"
-#include "include/core/SkPath.h"
+#include "include/core/SkPathBuilder.h"
#include "include/core/SkRect.h"
#include "include/core/SkRefCnt.h"
#include "include/core/SkScalar.h"
@@ -55,11 +55,11 @@
void onDraw(SkCanvas* canvas) override {
constexpr SkScalar kMaxR = kMaxRadius + kMaxBlurRadius;
- auto almostCircleMaker = [] (SkScalar radius, SkPath* dst) {
- dst->reset();
- dst->addArc(SkRect::MakeXYWH(-radius, -radius, 2 * radius, 2 * radius), 0, 355);
- dst->setIsVolatile(true);
- dst->close();
+ auto almostCircleMaker = [] (SkScalar radius) {
+ return SkPathBuilder().addArc(SkRect::MakeXYWH(-radius, -radius, 2 * radius, 2 * radius), 0, 355)
+ .setIsVolatile(true)
+ .close()
+ .detach();
};
auto blurMaker = [] (SkScalar radius) ->sk_sp<SkMaskFilter> {
@@ -73,8 +73,7 @@
if (this->getMode() == kSample_Mode) {
paint.setMaskFilter(blurMaker(fAnimBlurRadius));
SkISize size = canvas->getBaseLayerSize();
- SkPath almostCircle;
- almostCircleMaker(fAnimRadius, &almostCircle);
+ SkPath almostCircle = almostCircleMaker(fAnimRadius);
canvas->save();
canvas->translate(size.fWidth / 2.f, size.fHeight / 4.f);
canvas->drawCircle(0, 0, fAnimRadius, paint);
@@ -114,7 +113,7 @@
}
SkPath almostCircle;
if (!benchMode) {
- almostCircleMaker(radius, &almostCircle);
+ almostCircle = almostCircleMaker(radius);
}
canvas->save();
canvas->drawCircle(0, 0, radius, paint);