14.22: effects, text and shapes outlast size changes and adjustments

This commit is contained in:
ZacharyZhang-NY committed 2026-10-11 12:03:49 -04:00
1 parent bafb07978a
commit e8b74c6e47
17 files changed
+226 -38

No files matched your search

+18
View File
@@ -85,6 +85,24 @@ bool LayerEffects::isValid() const
&& (!innerShadow || innerShadow->isValid()) && (!outerGlow || outerGlow->isValid()) && (!innerGlow || innerGlow->isValid());
}
// Swift 1.4.9's Scale Styles for Image Size.
LayerEffects LayerEffects::scaled(double factor) const
{
const auto scale = [factor](double value, double limit) { return std::min(limit, value * factor); };
LayerEffects result = *this;
if (result.stroke)
result.stroke->size = scale(stroke->size, 500);
if (result.shadow)
result.shadow->distance = scale(shadow->distance, 5000), result.shadow->blur = scale(shadow->blur, 500);
if (result.innerShadow)
result.innerShadow->distance = scale(innerShadow->distance, 5000), result.innerShadow->blur = scale(innerShadow->blur, 500);
if (result.outerGlow)
result.outerGlow->size = scale(outerGlow->size, 500);
if (result.innerGlow)
result.innerGlow->size = scale(innerGlow->size, 500);
return result;
}
std::vector<LayerEffectKind> LayerEffects::kinds() const
{
std::vector<LayerEffectKind> result;