diff --git a/src/loaders/lottie/tvgLottieBuilder.cpp b/src/loaders/lottie/tvgLottieBuilder.cpp index 3ef06934..00ee2245 100644 --- a/src/loaders/lottie/tvgLottieBuilder.cpp +++ b/src/loaders/lottie/tvgLottieBuilder.cpp @@ -1308,7 +1308,7 @@ void LottieBuilder::updateEffect(LottieLayer* layer, float frameNo) case LottieEffect::DropShadow: { auto effect = static_cast(*ef); 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; } case LottieEffect::GaussianBlur: { diff --git a/src/loaders/lottie/tvgLottieModel.h b/src/loaders/lottie/tvgLottieModel.h index 739f3303..9083accc 100644 --- a/src/loaders/lottie/tvgLottieModel.h +++ b/src/loaders/lottie/tvgLottieModel.h @@ -95,7 +95,7 @@ struct LottieEffect struct LottieDropShadow : LottieEffect { LottieColor color; - LottieOpacity opacity = 0; + LottieFloat opacity = 0; LottieAngle angle = 0.0f; LottieSlider distance = 0.0f; LottieSlider blurness = 0.0f; diff --git a/src/renderer/tvgRender.h b/src/renderer/tvgRender.h index 003c7d3b..f3311f6c 100644 --- a/src/renderer/tvgRender.h +++ b/src/renderer/tvgRender.h @@ -309,7 +309,7 @@ struct RenderEffectDropShadow : RenderEffect inst->color[0] = va_arg(args, int); inst->color[1] = 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->distance = (float) va_arg(args, double); inst->sigma = std::max((float) va_arg(args, double), 0.0f);