| Index: experimental/svg/model/SkSVGPath.cpp | 
| diff --git a/experimental/svg/model/SkSVGPath.cpp b/experimental/svg/model/SkSVGPath.cpp | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..ba5e3d62ba97cb3b0feb7088802a0bc76e1e7d24 | 
| --- /dev/null | 
| +++ b/experimental/svg/model/SkSVGPath.cpp | 
| @@ -0,0 +1,37 @@ | 
| +/* | 
| + * Copyright 2016 Google Inc. | 
| + * | 
| + * Use of this source code is governed by a BSD-style license that can be | 
| + * found in the LICENSE file. | 
| + */ | 
| + | 
| +#include "SkCanvas.h" | 
| +#include "SkPaint.h" | 
| +#include "SkSVGPath.h" | 
| +#include "SkSVGRenderContext.h" | 
| +#include "SkSVGValue.h" | 
| + | 
| +SkSVGPath::SkSVGPath() : INHERITED(SkSVGTag::path) { } | 
| + | 
| +void SkSVGPath::doRender(SkCanvas* canvas, const SkPaint* paint) const { | 
| +    if (paint) { | 
| +        canvas->drawPath(fPath, *paint); | 
| +    } | 
| +} | 
| + | 
| +void SkSVGPath::onRender(SkCanvas* canvas, const SkSVGRenderContext& ctx) const { | 
| +    this->doRender(canvas, ctx.fillPaint()); | 
| +    this->doRender(canvas, ctx.strokePaint()); | 
| +} | 
| + | 
| +void SkSVGPath::onSetAttribute(SkSVGAttribute attr, const SkSVGValue& v) { | 
| +    switch (attr) { | 
| +    case SkSVGAttribute::d: | 
| +        if (const auto* path = v.as<SkSVGPathValue>()) { | 
| +            this->setPath(*path); | 
| +        } | 
| +        break; | 
| +    default: | 
| +        this->INHERITED::onSetAttribute(attr, v); | 
| +    } | 
| +} | 
|  |