diff options
Diffstat (limited to 'experimental/skotty/SkottyProperties.cpp')
-rw-r--r-- | experimental/skotty/SkottyProperties.cpp | 15 |
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)) {} |