[cairo] Extending XRender to support non-blurry edges for transformations(?)

Clemens Eisserer linuxhippy at gmail.com
Wed Jul 30 17:26:11 PDT 2008


Hi Carl,

Thanks a lot for your reply.

> One objection is that there's a "layering violation" in your
> description. Cairo and Render have separate controls for filtering modes
> and sampling modes, but what you're describing here is a mode that
> somehow intermingles sampling and filtering in ways that would prevent
> them from being separate, (conceptually or in the implementation).
Well, you could also think about it in a different way - it configures
which pixels the filter should use for filtering.
Maybe the responsibilities for the filter-part could be extended?

For now the filtering approach in the scaling case seems to be flawed
anyway - filtering happens with source-"resolution".

> Beyond that, though, there's an issue of what do you actually want? You
> mentioned wanting to draw a rotated image without using PAD sampling and
> a mask. And you do want BILINEAR filtering internal to the image, but
> not on the edges. Do you see that you are necessarily asking for a
> non-antialiased result around the edge of the image? Is this what you
> really want?
In this case, yes thats exactly what I am trying to do.

I have an idea how I could emulate it, but I guess it will cause most
drivers to fall back.
I'll try it out soon, but it still would need REPEAT_PAD to work properly.

The problem is that I just can't imagine cases where the current
result is desired.
If I stretch an image 10 times, 10 pixels at the edges are blurred -
that has nothing to do with antialiasing.

lg Clemens


More information about the cairo mailing list