aboutsummaryrefslogtreecommitdiffhomepage
path: root/modules/sksg/include/SkSGMerge.h
diff options
context:
space:
mode:
Diffstat (limited to 'modules/sksg/include/SkSGMerge.h')
-rw-r--r--modules/sksg/include/SkSGMerge.h16
1 files changed, 10 insertions, 6 deletions
diff --git a/modules/sksg/include/SkSGMerge.h b/modules/sksg/include/SkSGMerge.h
index 54924d6475..c4957f45a1 100644
--- a/modules/sksg/include/SkSGMerge.h
+++ b/modules/sksg/include/SkSGMerge.h
@@ -36,8 +36,13 @@ public:
kXOR,
};
- static sk_sp<Merge> Make(std::vector<sk_sp<GeometryNode>>&& geos, Mode mode) {
- return sk_sp<Merge>(new Merge(std::move(geos), mode));
+ struct Rec {
+ sk_sp<GeometryNode> fGeo;
+ Mode fMode;
+ };
+
+ static sk_sp<Merge> Make(std::vector<Rec>&& recs) {
+ return sk_sp<Merge>(new Merge(std::move(recs)));
}
~Merge() override;
@@ -50,11 +55,10 @@ protected:
SkPath onAsPath() const override;
private:
- Merge(std::vector<sk_sp<GeometryNode>>&& geos, Mode);
+ Merge(std::vector<Rec>&& recs);
- std::vector<sk_sp<GeometryNode>> fGeos;
- SkPath fMerged;
- Mode fMode;
+ const std::vector<Rec> fRecs;
+ SkPath fMerged;
using INHERITED = GeometryNode;
};