/* * 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 SkSVGAttribute_DEFINED #define SkSVGAttribute_DEFINED #include "SkSVGTypes.h" #include "SkTLazy.h" class SkSVGRenderContext; enum class SkSVGAttribute { kClipPath, kCx, // ,: center x position kCy, // ,: center y position kD, kFill, kFillOpacity, kFillRule, kGradientTransform, kHeight, kHref, kOffset, kOpacity, kPoints, kR, // : radius kRx, // ,: horizontal (corner) radius kRy, // ,: vertical (corner) radius kSpreadMethod, kStopColor, kStopOpacity, kStroke, kStrokeOpacity, kStrokeLineCap, kStrokeLineJoin, kStrokeWidth, kTransform, kViewBox, kWidth, kX, kX1, // : first endpoint x kX2, // : second endpoint x kY, kY1, // : first endpoint y kY2, // : second endpoint y kUnknown, }; struct SkSVGPresentationAttributes { static SkSVGPresentationAttributes MakeInitial(); // TODO: SkTLazy adds an extra ptr per attribute; refactor to reduce overhead. SkTLazy fFill; SkTLazy fFillOpacity; SkTLazy fFillRule; SkTLazy fStroke; SkTLazy fStrokeLineCap; SkTLazy fStrokeLineJoin; SkTLazy fStrokeOpacity; SkTLazy fStrokeWidth; // uninherited SkTLazy fOpacity; SkTLazy fClipPath; }; #endif // SkSVGAttribute_DEFINED