From: Hermet Park Date: Tue, 13 Nov 2018 05:54:23 +0000 (+0900) Subject: lottieitem: apply transform for radial gradient values. X-Git-Tag: submit/tizen/20181129.071502~30 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F42%2F192942%2F2;p=platform%2Fcore%2Fuifw%2Flottie-player.git lottieitem: apply transform for radial gradient values. gradient and shape cooridnates must be in same space, implement them of missing calc. Change-Id: I21d3024718e9cb64e0072db680ec07e77b8c3d43 --- diff --git a/src/lottie/lottieitem.cpp b/src/lottie/lottieitem.cpp index db85170..cb36b13 100644 --- a/src/lottie/lottieitem.cpp +++ b/src/lottie/lottieitem.cpp @@ -1108,18 +1108,25 @@ void LOTDrawable::sync() mCNode->mGradient.end.y = e.y(); updateGStops(mCNode.get(), mBrush.mGradient); break; - } - case VBrush::Type::RadialGradient: + } + case VBrush::Type::RadialGradient: { mCNode->mBrushType = LOTBrushType::BrushGradient; mCNode->mGradient.type = LOTGradientType::GradientRadial; - mCNode->mGradient.center.x = mBrush.mGradient->radial.cx; - mCNode->mGradient.center.y = mBrush.mGradient->radial.cy; - mCNode->mGradient.focal.x = mBrush.mGradient->radial.fx; - mCNode->mGradient.focal.y = mBrush.mGradient->radial.fy; - mCNode->mGradient.cradius = mBrush.mGradient->radial.cradius; - mCNode->mGradient.fradius = mBrush.mGradient->radial.fradius; + VPointF c = mBrush.mGradient->mMatrix.map({mBrush.mGradient->radial.cx, + mBrush.mGradient->radial.cy}); + VPointF f = mBrush.mGradient->mMatrix.map({mBrush.mGradient->radial.fx, + mBrush.mGradient->radial.fy}); + mCNode->mGradient.center.x = c.x(); + mCNode->mGradient.center.y = c.y(); + mCNode->mGradient.focal.x = f.x(); + mCNode->mGradient.focal.y = f.y(); + + float scale = getScale(mBrush.mGradient->mMatrix); + mCNode->mGradient.cradius = mBrush.mGradient->radial.cradius * scale; + mCNode->mGradient.fradius = mBrush.mGradient->radial.fradius * scale; updateGStops(mCNode.get(), mBrush.mGradient); break; + } default: break; }