/src/skia/modules/svg/include/SkSVGPoly.h
| Line | Count | Source | 
| 1 |  | /* | 
| 2 |  |  * Copyright 2016 Google Inc. | 
| 3 |  |  * | 
| 4 |  |  * Use of this source code is governed by a BSD-style license that can be | 
| 5 |  |  * found in the LICENSE file. | 
| 6 |  |  */ | 
| 7 |  |  | 
| 8 |  | #ifndef SkSVGPoly_DEFINED | 
| 9 |  | #define SkSVGPoly_DEFINED | 
| 10 |  |  | 
| 11 |  | #include "include/core/SkPath.h" | 
| 12 |  | #include "modules/svg/include/SkSVGShape.h" | 
| 13 |  |  | 
| 14 |  | // Handles <polygon> and <polyline> elements. | 
| 15 |  | class SkSVGPoly final : public SkSVGShape { | 
| 16 |  | public: | 
| 17 | 1.88k |     static sk_sp<SkSVGPoly> MakePolygon() { | 
| 18 | 1.88k |         return sk_sp<SkSVGPoly>(new SkSVGPoly(SkSVGTag::kPolygon)); | 
| 19 | 1.88k |     } | 
| 20 |  |  | 
| 21 | 42 |     static sk_sp<SkSVGPoly> MakePolyline() { | 
| 22 | 42 |         return sk_sp<SkSVGPoly>(new SkSVGPoly(SkSVGTag::kPolyline)); | 
| 23 | 42 |     } | 
| 24 |  |  | 
| 25 |  |     SVG_ATTR(Points, SkSVGPointsType, SkSVGPointsType()) | 
| 26 |  |  | 
| 27 |  | protected: | 
| 28 |  |     bool parseAndSetAttribute(const char*, const char*) override; | 
| 29 |  |  | 
| 30 |  |     void onDraw(SkCanvas*, const SkSVGLengthContext&, const SkPaint&, | 
| 31 |  |                 SkPathFillType) const override; | 
| 32 |  |  | 
| 33 |  |     SkPath onAsPath(const SkSVGRenderContext&) const override; | 
| 34 |  |  | 
| 35 |  |     SkRect onObjectBoundingBox(const SkSVGRenderContext&) const override; | 
| 36 |  |  | 
| 37 |  | private: | 
| 38 |  |     SkSVGPoly(SkSVGTag); | 
| 39 |  |  | 
| 40 |  |     mutable SkPath fPath;  // mutated in onDraw(), to apply inherited fill types. | 
| 41 |  |  | 
| 42 |  |     using INHERITED = SkSVGShape; | 
| 43 |  | }; | 
| 44 |  |  | 
| 45 |  | #endif // SkSVGPoly_DEFINED |