skia2/experimental/svg/model/SkSVGCircle.h
Florin Malita e932d4b3a9 [SVGDom] Add fill-rule support
There's a bit of friction with this attribute, because per spec it is
an inherited presentation attribute, but in Skia it is part of the
actual SkPath state.

So we must add some plumbing to SkSVGShape & friends to allow overriding
the fill type at render-time.

R=robertphillips@google.com,stephana@google.com

Change-Id: I9c926d653c6211beb3914bffac50d4349dbdd2c0
Reviewed-on: https://skia-review.googlesource.com/5415
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2016-12-06 16:05:41 +00:00

40 lines
953 B
C++

/*
* Copyright 2016 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef SkSVGCircle_DEFINED
#define SkSVGCircle_DEFINED
#include "SkSVGShape.h"
#include "SkSVGTypes.h"
class SkSVGCircle final : public SkSVGShape {
public:
virtual ~SkSVGCircle() = default;
static sk_sp<SkSVGCircle> Make() { return sk_sp<SkSVGCircle>(new SkSVGCircle()); }
void setCx(const SkSVGLength&);
void setCy(const SkSVGLength&);
void setR(const SkSVGLength&);
protected:
void onSetAttribute(SkSVGAttribute, const SkSVGValue&) override;
void onDraw(SkCanvas*, const SkSVGLengthContext&, const SkPaint&,
SkPath::FillType) const override;
private:
SkSVGCircle();
SkSVGLength fCx = SkSVGLength(0);
SkSVGLength fCy = SkSVGLength(0);
SkSVGLength fR = SkSVGLength(0);
typedef SkSVGShape INHERITED;
};
#endif // SkSVGCircle_DEFINED