[cairo-bugs] [Bug 29470] Gradient rendering is imprecise
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Thu Oct 21 03:09:28 PDT 2010
https://bugs.freedesktop.org/show_bug.cgi?id=29470
Andrea Canciani <ranma42 at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
--- Comment #9 from Andrea Canciani <ranma42 at gmail.com> 2010-10-21 03:09:25 PDT ---
(In reply to comment #8)
> (In reply to comment #7)
> > Two pixman branches fixing the rendering of linear gradients are available
> > here:
> > http://cgit.freedesktop.org/~ranma42/pixman/log/?h=wip/linear-fixed
> > http://cgit.freedesktop.org/~ranma42/pixman/log/?h=wip/linear-float
>
> Both branches work correctly on the test case and in the Cairo port of
> Inkscape.
A set of changes based on those branch has recently been merged in
pixman/master:
commit 1d4f2d71facd5f2bbce74fbe3407ccea6cf4bea1
Author: Andrea Canciani <ranma42 at gmail.com>
Date: Wed Aug 11 09:58:05 2010 +0200
Improve precision of linear gradients
Integer division (without keeping the remainder) can discard a lot
of information. Doing the division maths in floating point (and
paying attention to error propagation) allows to greatly improve
the precision of linear gradients.
and
commit 9b72fd1b857494ea928795c89a4f827e56fe26d3
Author: Andrea Canciani <ranma42 at gmail.com>
Date: Mon Oct 18 22:21:52 2010 +0200
Make classification consistent with rasterization
Use the same computations to classify the gradient and to
rasterize it.
This improves the correctness of the classification by
avoiding integer division.
>
> When the gradient has a transformation matrix with entries that exceed the
> range of 16.16 fixed point, the rendering is still wrong. That's a different
> problem though, so I'll file it separately.
I can't find the bugreport. It would be very useful to also have a testcase and
to also check if the same problem affects radial gradients.
--
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
More information about the cairo-bugs
mailing list