16ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita/* 26ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita * Copyright 2016 Google Inc. 36ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita * 46ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita * Use of this source code is governed by a BSD-style license that can be 56ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita * found in the LICENSE file. 66ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita */ 76ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita 86ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita#ifndef SkSVGPath_DEFINED 96ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita#define SkSVGPath_DEFINED 106ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita 116ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita#include "SkPath.h" 12bffc2566872f99d378a1113d0a49ec9ee0d60b7afmalita#include "SkSVGShape.h" 136ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita 14bffc2566872f99d378a1113d0a49ec9ee0d60b7afmalitaclass SkSVGPath final : public SkSVGShape { 156ceef3dd67617c5f4572ada98d5ee85777d2db99fmalitapublic: 16d3b65972aad96453ff4510caa3e25a2b847c6d1eBrian Salomon ~SkSVGPath() override = default; 176ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita static sk_sp<SkSVGPath> Make() { return sk_sp<SkSVGPath>(new SkSVGPath()); } 186ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita 196ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita void setPath(const SkPath& path) { fPath = path; } 206ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita 216ceef3dd67617c5f4572ada98d5ee85777d2db99fmalitaprotected: 226ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita void onSetAttribute(SkSVGAttribute, const SkSVGValue&) override; 236ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita 24e932d4b3a99905a6272c5574f21ac651632f4e82Florin Malita void onDraw(SkCanvas*, const SkSVGLengthContext&, const SkPaint&, 25e932d4b3a99905a6272c5574f21ac651632f4e82Florin Malita SkPath::FillType) const override; 26bffc2566872f99d378a1113d0a49ec9ee0d60b7afmalita 27ce8840e3842f3a702c5d7bf440ff730bdfaf8e70Florin Malita SkPath onAsPath(const SkSVGRenderContext&) const override; 28ce8840e3842f3a702c5d7bf440ff730bdfaf8e70Florin Malita 296ceef3dd67617c5f4572ada98d5ee85777d2db99fmalitaprivate: 306ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita SkSVGPath(); 316ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita 32e932d4b3a99905a6272c5574f21ac651632f4e82Florin Malita mutable SkPath fPath; // mutated in onDraw(), to apply inherited fill types. 336ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita 34bffc2566872f99d378a1113d0a49ec9ee0d60b7afmalita typedef SkSVGShape INHERITED; 356ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita}; 366ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita 376ceef3dd67617c5f4572ada98d5ee85777d2db99fmalita#endif // SkSVGPath_DEFINED 38