3a92f776b0
Also removed an erroneous call to mapToRect() when returning bounds for SkSVGContainer. The contexts in which we access object bounds are always such that any transforms have already been applied. Change-Id: Ieac488e1699d3ebff56038d6ada36737291671eb Reviewed-on: https://skia-review.googlesource.com/c/skia/+/345117 Commit-Queue: Tyler Denniston <tdenniston@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
39 lines
980 B
C++
39 lines
980 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 SkSVGPath_DEFINED
|
|
#define SkSVGPath_DEFINED
|
|
|
|
#include "include/core/SkPath.h"
|
|
#include "modules/svg/include/SkSVGShape.h"
|
|
|
|
class SkSVGPath final : public SkSVGShape {
|
|
public:
|
|
static sk_sp<SkSVGPath> Make() { return sk_sp<SkSVGPath>(new SkSVGPath()); }
|
|
|
|
void setPath(const SkPath& path) { fPath = path; }
|
|
|
|
protected:
|
|
void onSetAttribute(SkSVGAttribute, const SkSVGValue&) override;
|
|
|
|
void onDraw(SkCanvas*, const SkSVGLengthContext&, const SkPaint&,
|
|
SkPathFillType) const override;
|
|
|
|
SkPath onAsPath(const SkSVGRenderContext&) const override;
|
|
|
|
SkRect onObjectBoundingBox(const SkSVGRenderContext&) const override;
|
|
|
|
private:
|
|
SkSVGPath();
|
|
|
|
mutable SkPath fPath; // mutated in onDraw(), to apply inherited fill types.
|
|
|
|
using INHERITED = SkSVGShape;
|
|
};
|
|
|
|
#endif // SkSVGPath_DEFINED
|