Skia
2D Graphics Library
SkSVGPoly.h
Go to the documentation of this file.
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"
13 
14 // Handles <polygon> and <polyline> elements.
15 class SK_API SkSVGPoly final : public SkSVGShape {
16 public:
19  }
20 
23  }
24 
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:
39 
40  mutable SkPath fPath; // mutated in onDraw(), to apply inherited fill types.
41 
42  using INHERITED = SkSVGShape;
43 };
44 
45 #endif // SkSVGPoly_DEFINED
SkPathFillType
Definition: SkPathTypes.h:11
SkSVGTag
Definition: SkSVGNode.h:23
#define SVG_ATTR(attr_name, attr_type, attr_default)
Definition: SkSVGNode.h:203
std::vector< SkPoint > SkSVGPointsType
Definition: SkSVGTypes.h:31
SkCanvas provides an interface for drawing, and how the drawing is clipped and transformed.
Definition: SkCanvas.h:99
SkPaint controls options applied when drawing.
Definition: SkPaint.h:44
SkPath contain geometry.
Definition: SkPath.h:58
Definition: SkRefCnt.h:119
Definition: SkSVGRenderContext.h:27
Definition: SkSVGPoly.h:15
static sk_sp< SkSVGPoly > MakePolygon()
Definition: SkSVGPoly.h:17
static sk_sp< SkSVGPoly > MakePolyline()
Definition: SkSVGPoly.h:21
Definition: SkSVGRenderContext.h:61
Definition: SkSVGShape.h:17
Shared pointer class to wrap classes that support a ref()/unref() interface.
Definition: SkRefCnt.h:220
SkRect holds four float coordinates describing the upper and lower bounds of a rectangle.
Definition: SkRect.h:582