mirror of
https://github.com/thorvg/thorvg.git
synced 2025-06-08 13:43:43 +00:00
lottie: corrected drop-shadow handling
opacity value type should be float with range 0 ~ 256
This commit is contained in:
parent
13aa26109f
commit
e95f80c18f
3 changed files with 3 additions and 3 deletions
|
@ -1308,7 +1308,7 @@ void LottieBuilder::updateEffect(LottieLayer* layer, float frameNo)
|
||||||
case LottieEffect::DropShadow: {
|
case LottieEffect::DropShadow: {
|
||||||
auto effect = static_cast<LottieDropShadow*>(*ef);
|
auto effect = static_cast<LottieDropShadow*>(*ef);
|
||||||
auto color = effect->color(frameNo);
|
auto color = effect->color(frameNo);
|
||||||
layer->scene->push(SceneEffect::DropShadow, color.rgb[0], color.rgb[1], color.rgb[2], effect->opacity(frameNo), effect->angle(frameNo), effect->distance(frameNo), effect->blurness(frameNo), QUALITY);
|
layer->scene->push(SceneEffect::DropShadow, color.rgb[0], color.rgb[1], color.rgb[2], (int)effect->opacity(frameNo), effect->angle(frameNo), effect->distance(frameNo), effect->blurness(frameNo) * BLUR_TO_SIGMA, QUALITY);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case LottieEffect::GaussianBlur: {
|
case LottieEffect::GaussianBlur: {
|
||||||
|
|
|
@ -95,7 +95,7 @@ struct LottieEffect
|
||||||
struct LottieDropShadow : LottieEffect
|
struct LottieDropShadow : LottieEffect
|
||||||
{
|
{
|
||||||
LottieColor color;
|
LottieColor color;
|
||||||
LottieOpacity opacity = 0;
|
LottieFloat opacity = 0;
|
||||||
LottieAngle angle = 0.0f;
|
LottieAngle angle = 0.0f;
|
||||||
LottieSlider distance = 0.0f;
|
LottieSlider distance = 0.0f;
|
||||||
LottieSlider blurness = 0.0f;
|
LottieSlider blurness = 0.0f;
|
||||||
|
|
|
@ -309,7 +309,7 @@ struct RenderEffectDropShadow : RenderEffect
|
||||||
inst->color[0] = va_arg(args, int);
|
inst->color[0] = va_arg(args, int);
|
||||||
inst->color[1] = va_arg(args, int);
|
inst->color[1] = va_arg(args, int);
|
||||||
inst->color[2] = va_arg(args, int);
|
inst->color[2] = va_arg(args, int);
|
||||||
inst->color[3] = va_arg(args, int);
|
inst->color[3] = std::min(va_arg(args, int), 255);
|
||||||
inst->angle = (float) va_arg(args, double);
|
inst->angle = (float) va_arg(args, double);
|
||||||
inst->distance = (float) va_arg(args, double);
|
inst->distance = (float) va_arg(args, double);
|
||||||
inst->sigma = std::max((float) va_arg(args, double), 0.0f);
|
inst->sigma = std::max((float) va_arg(args, double), 0.0f);
|
||||||
|
|
Loading…
Add table
Reference in a new issue