[cairo-bugs] [Bug 15349] bad clipping with EXTEND_NONE

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri Apr 4 20:57:13 PDT 2008


http://bugs.freedesktop.org/show_bug.cgi?id=15349





--- Comment #3 from Owen Taylor <otaylor at redhat.com>  2008-04-04 20:57:10 PST ---
Created an attachment (id=15692)
 --> (http://bugs.freedesktop.org/attachment.cgi?id=15692)
Patch tightning bounds in some cases

Ouch - a locking failure ;-(

I took at a stab at fixing this myself this evening, since I figured
it was my buggy code to begin with. Mostly it was not different from
your patch, but I did try to handle the cases where filtering should
not have an effect (source pixels 1:1 with destination pixels) and
give them tighter bounds.

In terms of number-of-pixels composited, it's unlikely that this
will make a significant difference, but using a tight bound may
makeit easier the backend to optimize things that couldn't otherwise
be optimized since it avoids sampling outside the 

I merged this residual with the current code, feel free to use or not
use as you see fit. It's certainly debatable whether it's worthwhile
or just possibly-bug-inducing complexity.

P.S. - I'm not sure I entirely agree with the comment:

   (since currently no specific backends that could do custom
   filters are calling _cairo_pattern_get_extents)

_cairo_pattern_get_extents() gets used via the "fallback" code for
paint()/fill() for the Xlib backend, and the X server implementation
is certainly free to implement a better FilterBest.

P.P.S - as has been discussed previously:

   #define CAIRO_FILTER_DEFAULT CAIRO_FILTER_BEST

  in cairoint.h is a time-bomb waiting to happen. FILTER_DEFAULT
  should be GOOD.


-- 
Configure bugmail: http://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