• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2018 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 #include "modules/skottie/include/SkottieProperty.h"
9 
10 #include "modules/skottie/src/Transform.h"
11 #include "modules/skottie/src/text/TextAdapter.h"
12 #include "modules/sksg/include/SkSGOpacityEffect.h"
13 #include "modules/sksg/include/SkSGPaint.h"
14 
15 namespace skottie {
16 
operator ==(const TextPropertyValue & other) const17 bool TextPropertyValue::operator==(const TextPropertyValue& other) const {
18     return fTypeface == other.fTypeface
19         && fText == other.fText
20         && fTextSize == other.fTextSize
21         && fStrokeWidth == other.fStrokeWidth
22         && fLineHeight == other.fLineHeight
23         && fHAlign == other.fHAlign
24         && fVAlign == other.fVAlign
25         && fResize == other.fResize
26         && fBox == other.fBox
27         && fFillColor == other.fFillColor
28         && fStrokeColor == other.fStrokeColor
29         && fHasFill == other.fHasFill
30         && fHasStroke == other.fHasStroke;
31 }
32 
operator !=(const TextPropertyValue & other) const33 bool TextPropertyValue::operator!=(const TextPropertyValue& other) const {
34     return !(*this== other);
35 }
36 
operator ==(const TransformPropertyValue & other) const37 bool TransformPropertyValue::operator==(const TransformPropertyValue& other) const {
38     return this->fAnchorPoint == other.fAnchorPoint
39         && this->fPosition    == other.fPosition
40         && this->fScale       == other.fScale
41         && this->fSkew        == other.fSkew
42         && this->fSkewAxis    == other.fSkewAxis;
43 }
44 
operator !=(const TransformPropertyValue & other) const45 bool TransformPropertyValue::operator!=(const TransformPropertyValue& other) const {
46     return !(*this == other);
47 }
48 
49 template <>
~PropertyHandle()50 PropertyHandle<ColorPropertyValue, sksg::Color>::~PropertyHandle() {}
51 
52 template <>
get() const53 ColorPropertyValue PropertyHandle<ColorPropertyValue, sksg::Color>::get() const {
54     return fNode->getColor();
55 }
56 
57 template <>
set(const ColorPropertyValue & c)58 void PropertyHandle<ColorPropertyValue, sksg::Color>::set(const ColorPropertyValue& c) {
59     fNode->setColor(c);
60 }
61 
62 template <>
~PropertyHandle()63 PropertyHandle<OpacityPropertyValue, sksg::OpacityEffect>::~PropertyHandle() {}
64 
65 template <>
get() const66 OpacityPropertyValue PropertyHandle<OpacityPropertyValue, sksg::OpacityEffect>::get() const {
67     return fNode->getOpacity() * 100;
68 }
69 
70 template <>
set(const OpacityPropertyValue & o)71 void PropertyHandle<OpacityPropertyValue, sksg::OpacityEffect>::set(const OpacityPropertyValue& o) {
72     fNode->setOpacity(o / 100);
73 }
74 
75 template <>
~PropertyHandle()76 PropertyHandle<TextPropertyValue, internal::TextAdapter>::~PropertyHandle() {}
77 
78 template <>
get() const79 TextPropertyValue PropertyHandle<TextPropertyValue, internal::TextAdapter>::get() const {
80       return fNode->getText();
81 }
82 
83 template<>
set(const TextPropertyValue & t)84 void PropertyHandle<TextPropertyValue, internal::TextAdapter>::set(const TextPropertyValue& t) {
85       fNode->setText(t);
86 }
87 
88 template <>
~PropertyHandle()89 PropertyHandle<TransformPropertyValue, internal::TransformAdapter2D>::~PropertyHandle() {}
90 
91 template <>
92 TransformPropertyValue PropertyHandle<TransformPropertyValue,
get() const93                                       internal::TransformAdapter2D>::get() const {
94     return {
95         fNode->getAnchorPoint(),
96         fNode->getPosition(),
97         fNode->getScale(),
98         fNode->getRotation(),
99         fNode->getSkew(),
100         fNode->getSkewAxis()
101     };
102 }
103 
104 template <>
set(const TransformPropertyValue & t)105 void PropertyHandle<TransformPropertyValue, internal::TransformAdapter2D>::set(
106         const TransformPropertyValue& t) {
107     fNode->setAnchorPoint(t.fAnchorPoint);
108     fNode->setPosition(t.fPosition);
109     fNode->setScale(t.fScale);
110     fNode->setRotation(t.fRotation);
111     fNode->setSkew(t.fSkew);
112     fNode->setSkewAxis(t.fSkewAxis);
113 }
114 
onColorProperty(const char[],const LazyHandle<ColorPropertyHandle> &)115 void PropertyObserver::onColorProperty(const char[],
116                                        const LazyHandle<ColorPropertyHandle>&) {}
117 
onOpacityProperty(const char[],const LazyHandle<OpacityPropertyHandle> &)118 void PropertyObserver::onOpacityProperty(const char[],
119                                          const LazyHandle<OpacityPropertyHandle>&) {}
120 
onTextProperty(const char[],const LazyHandle<TextPropertyHandle> &)121 void PropertyObserver::onTextProperty(const char[],
122                                       const LazyHandle<TextPropertyHandle>&) {}
123 
onTransformProperty(const char[],const LazyHandle<TransformPropertyHandle> &)124 void PropertyObserver::onTransformProperty(const char[],
125                                            const LazyHandle<TransformPropertyHandle>&) {}
126 
onEnterNode(const char node_name[])127 void PropertyObserver::onEnterNode(const char node_name[]) {}
128 
onLeavingNode(const char node_name[])129 void PropertyObserver::onLeavingNode(const char node_name[]) {}
130 
131 }  // namespace skottie
132