mirror of
https://github.com/thorvg/thorvg.git
synced 2025-06-14 12:04:29 +00:00
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:
parent
1b48bf10fe
commit
a6344daa66
1 changed files with 4 additions and 4 deletions
|
@ -100,12 +100,12 @@ bool _prepareLinear(SwFill* fill, const LinearGradient* linear, const Matrix* tr
|
||||||
auto cy = (y2 - y1) * 0.5f + y1;
|
auto cy = (y2 - y1) * 0.5f + y1;
|
||||||
auto dx = x1 - cx;
|
auto dx = x1 - cx;
|
||||||
auto dy = y1 - cy;
|
auto dy = y1 - cy;
|
||||||
x1 = dx * transform->e11 + dy * transform->e12 + transform->e31;
|
x1 = dx * transform->e11 + dy * transform->e12 + transform->e31 + cx;
|
||||||
y1 = dx * transform->e21 + dy * transform->e22 + transform->e32;
|
y1 = dx * transform->e21 + dy * transform->e22 + transform->e32 + cy;
|
||||||
dx = x2 - cx;
|
dx = x2 - cx;
|
||||||
dy = y2 - cy;
|
dy = y2 - cy;
|
||||||
x2 = dx * transform->e11 + dy * transform->e12 + transform->e31;
|
x2 = dx * transform->e11 + dy * transform->e12 + transform->e31 + cx;
|
||||||
y2 = dx * transform->e21 + dy * transform->e22 + transform->e32;
|
y2 = dx * transform->e21 + dy * transform->e22 + transform->e32 + cy;
|
||||||
}
|
}
|
||||||
|
|
||||||
fill->linear.dx = x2 - x1;
|
fill->linear.dx = x2 - x1;
|
||||||
|
|
Loading…
Add table
Reference in a new issue