[cairo-bugs] [Bug 32215] Large gradients do not render

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sun Jan 2 10:12:59 PST 2011


https://bugs.freedesktop.org/show_bug.cgi?id=32215

Andrea Canciani <ranma42 at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

--- Comment #13 from Andrea Canciani <ranma42 at gmail.com> 2011-01-02 10:12:57 PST ---
(In reply to comment #12)
> (In reply to comment #11)
> > Would this be enough for inkscape to work correctly? Do you have other patterns
> > failing?
> 
> At the moment, no other failing test cases. Thanks a lot!

I just pushed to master a branch containing basically the same changes as the
branch you tested.

The three "interesting" commits are:

commit 51594d9787905618de608a367c3a5fc0544c52e3
Author: Andrea Canciani <ranma42 at gmail.com>
Date:   Fri Dec 17 11:04:41 2010 +0100

    matrix: Cairo matrix to pixman transform/offset conversion

    Xlib, XCB and image use the same code to convert a cairo_matrix_t to a
    backend-specific transform.

    The code did not handle correctly some matrices, thus a new function
    that performs the conversion in a more generic way was added and used
    in the backends instead of fixing the repeated code.

    Fixes part of https://bugs.freedesktop.org/show_bug.cgi?id=32215

commit 38dce5d14473e1106c8ea7a67b9be0f400d442a2
Author: Andrea Canciani <ranma42 at gmail.com>
Date:   Fri Dec 17 11:03:03 2010 +0100

    pattern: Factor out pattern rescaling

    The same code was duplicated (incorrectly and with some minor
    differences) in pattern, image, xlib and xcb.

    _cairo_gradient_pattern_max_val() abstracts that code in a function
    that can be used whenever a gradients extremes need to be rescaled to
    fit within a given range.

    Fixes huge-linear, huge-radial.

    Fixes part of https://bugs.freedesktop.org/show_bug.cgi?id=32215


commit 200e147322a7a17dec91ad5f678a07fdfaf38de2
Author: Andrea Canciani <ranma42 at gmail.com>
Date:   Fri Dec 17 11:04:53 2010 +0100

    pattern: Use double precision for gradient extreme objects

    Using double precision for gradient extreme objects ensures that they
    are preserved as specified when constructing the gradient pattern.

    Fixes huge-linear, huge-radial.

    Fixes part of https://bugs.freedesktop.org/show_bug.cgi?id=32215


Together they make it possible for backends that can handle the full double
range to have any gradient and for pixman-based backends
(image,xlib,xcb,fallbacks) to handle a much wider range of gradients and
transformation matrices.

-- 
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