1fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot/*
2fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Copyright 2016 Google Inc.
3fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot *
4fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Use of this source code is governed by a BSD-style license that can be
5fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * found in the LICENSE file.
6fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot */
7fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
8fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#ifndef SkSVGAttribute_DEFINED
9fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#define SkSVGAttribute_DEFINED
10fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
11fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkSVGTypes.h"
12fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkTLazy.h"
13fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
14fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotclass SkSVGRenderContext;
15fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
16fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotenum class SkSVGAttribute {
17fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kClipPath,
18fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kClipRule,
19fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kCx, // <circle>, <ellipse>, <radialGradient>: center x position
20fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kCy, // <circle>, <ellipse>, <radialGradient>: center y position
21fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kD,
22fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kFill,
23fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kFillOpacity,
24fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kFillRule,
25fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kFx, // <radialGradient>: focal point x position
26fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kFy, // <radialGradient>: focal point y position
27fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kGradientTransform,
28fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kHeight,
29fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kHref,
30fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kOffset,
31fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kOpacity,
32fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kPatternTransform,
33fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kPoints,
34fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kR,  // <circle>, <radialGradient>: radius
35fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kRx, // <ellipse>,<rect>: horizontal (corner) radius
36fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kRy, // <ellipse>,<rect>: vertical (corner) radius
37fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kSpreadMethod,
38fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kStopColor,
39fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kStopOpacity,
40fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kStroke,
41fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kStrokeDashArray,
42fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kStrokeDashOffset,
43fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kStrokeOpacity,
44fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kStrokeLineCap,
45fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kStrokeLineJoin,
46fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kStrokeMiterLimit,
47fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kStrokeWidth,
48fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kTransform,
49fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kViewBox,
50fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kVisibility,
51fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kWidth,
52fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kX,
53fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kX1, // <line>: first endpoint x
54fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kX2, // <line>: second endpoint x
55fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kY,
56fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kY1, // <line>: first endpoint y
57fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kY2, // <line>: second endpoint y
58fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
59fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    kUnknown,
60fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot};
61fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
62fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstruct SkSVGPresentationAttributes {
63fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    static SkSVGPresentationAttributes MakeInitial();
64fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
65fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    // TODO: SkTLazy adds an extra ptr per attribute; refactor to reduce overhead.
66fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
67fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkTLazy<SkSVGPaint>      fFill;
68fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkTLazy<SkSVGNumberType> fFillOpacity;
69fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkTLazy<SkSVGFillRule>   fFillRule;
70fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkTLazy<SkSVGFillRule>   fClipRule;
71fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
72fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkTLazy<SkSVGPaint>      fStroke;
73fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkTLazy<SkSVGDashArray>  fStrokeDashArray;
74fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkTLazy<SkSVGLength>     fStrokeDashOffset;
75fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkTLazy<SkSVGLineCap>    fStrokeLineCap;
76fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkTLazy<SkSVGLineJoin>   fStrokeLineJoin;
77fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkTLazy<SkSVGNumberType> fStrokeMiterLimit;
78fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkTLazy<SkSVGNumberType> fStrokeOpacity;
79fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkTLazy<SkSVGLength>     fStrokeWidth;
80fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
81fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkTLazy<SkSVGVisibility> fVisibility;
82fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
83fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    // uninherited
84fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkTLazy<SkSVGNumberType> fOpacity;
85fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkTLazy<SkSVGClip>       fClipPath;
86fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot};
87fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
88fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#endif // SkSVGAttribute_DEFINED
89