sw_engine: incorrect matrix used
authorMira Grudzinska <m.grudzinska@samsung.com>
Fri, 29 Oct 2021 12:58:07 +0000 (14:58 +0200)
committerJunsuChoi <jsuya.choi@samsung.com>
Mon, 1 Nov 2021 00:58:47 +0000 (09:58 +0900)
The invTransform should be used instead of transform - missed during
all the gradient changes.

src/lib/sw_engine/tvgSwFill.cpp

index 929006e..20eeb3b 100644 (file)
@@ -177,7 +177,7 @@ bool _prepareRadial(SwFill* fill, const RadialGradient* radial, const Matrix* tr
         fill->radial.shiftY += invTransform.e23;
         fill->radial.detSecDeriv = 2.0f * fill->radial.a11 * fill->radial.a11 + 2 * fill->radial.a21 * fill->radial.a21;
 
-        fill->radial.a *= sqrt(pow(transform->e11, 2) + pow(transform->e21, 2));
+        fill->radial.a *= sqrt(pow(invTransform.e11, 2) + pow(invTransform.e21, 2));
     } else {
         fill->radial.a11 = fill->radial.a22 = invR;
         fill->radial.a12 = fill->radial.a21 = 0.0f;