sw_engine: fix wrong gradient fill transform.

it missed the offset when transformed gradient positions.

now it's fixed.

Change-Id: I916bd88b40bc29ca57d31411b92e10fe357d720e
This commit is contained in:
Hermet Park 2020-07-16 13:45:27 +09:00
parent 1b48bf10fe
commit a6344daa66

View file

@ -100,12 +100,12 @@ bool _prepareLinear(SwFill* fill, const LinearGradient* linear, const Matrix* tr
auto cy = (y2 - y1) * 0.5f + y1;
auto dx = x1 - cx;
auto dy = y1 - cy;
x1 = dx * transform->e11 + dy * transform->e12 + transform->e31;
y1 = dx * transform->e21 + dy * transform->e22 + transform->e32;
x1 = dx * transform->e11 + dy * transform->e12 + transform->e31 + cx;
y1 = dx * transform->e21 + dy * transform->e22 + transform->e32 + cy;
dx = x2 - cx;
dy = y2 - cy;
x2 = dx * transform->e11 + dy * transform->e12 + transform->e31;
y2 = dx * transform->e21 + dy * transform->e22 + transform->e32;
x2 = dx * transform->e11 + dy * transform->e12 + transform->e31 + cx;
y2 = dx * transform->e21 + dy * transform->e22 + transform->e32 + cy;
}
fill->linear.dx = x2 - x1;