aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental/skotty/SkottyProperties.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'experimental/skotty/SkottyProperties.cpp')
-rw-r--r--experimental/skotty/SkottyProperties.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/experimental/skotty/SkottyProperties.cpp b/experimental/skotty/SkottyProperties.cpp
index 3bd95d8969..579823b24c 100644
--- a/experimental/skotty/SkottyProperties.cpp
+++ b/experimental/skotty/SkottyProperties.cpp
@@ -10,6 +10,7 @@
#include "SkColor.h"
#include "SkottyPriv.h"
#include "SkPath.h"
+#include "SkSGColor.h"
#include "SkSGPath.h"
#include "SkSGRect.h"
#include "SkSGTransform.h"
@@ -177,6 +178,20 @@ SkPath ValueTraits<ShapeValue>::As<SkPath>(const ShapeValue& path) {
return path;
}
+CompositeColor::CompositeColor(sk_sp<sksg::Color> wrapped_node)
+ : fColorNode(std::move(wrapped_node)) {
+ SkASSERT(fColorNode);
+}
+
+void CompositeColor::apply() {
+ // 'opacity' is [0..100]
+ const auto a = SkScalarRoundToInt(SkTPin<float>(fOpacity * .01f, 0, 1) * SkColorGetA(fColor));
+ fColorNode->setColor(SkColorSetARGB(a,
+ SkColorGetR(fColor),
+ SkColorGetG(fColor),
+ SkColorGetB(fColor)));
+}
+
CompositeRRect::CompositeRRect(sk_sp<sksg::RRect> wrapped_node)
: fRRectNode(std::move(wrapped_node)) {}