/* * 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 "modules/svg/include/SkSVGClipPath.h" #include "modules/svg/include/SkSVGRenderContext.h" SkSVGClipPath::SkSVGClipPath() : INHERITED(SkSVGTag::kClipPath) {} bool SkSVGClipPath::parseAndSetAttribute(const char* n, const char* v) { return INHERITED::parseAndSetAttribute(n, v) || this->setClipPathUnits( SkSVGAttributeParser::parse("clipPathUnits", n, v)); } SkPath SkSVGClipPath::resolveClip(const SkSVGRenderContext& ctx) const { auto clip = this->asPath(ctx); const auto obbt = ctx.transformForCurrentOBB(fClipPathUnits); const auto m = SkMatrix::Translate(obbt.offset.x, obbt.offset.y) * SkMatrix::Scale(obbt.scale.x, obbt.scale.y); clip.transform(m); return clip; }