[Pixman] [PATCH 1/3] Add CLEAR and SRC linear interpolation operators
spitzak at gmail.com
Thu Sep 15 15:23:02 PDT 2011
Søren Sandmann wrote:
> Chris Wilson <chris at chris-wilson.co.uk> writes:
>> Cairo, for instance, has a subtly different interpretation of how to use
>> the mask in combination with the Porter-Duff operators. In particular,
>> it has the notion of a clip mask, for which pixman has no parallel.
>> Quoting Soeren:
>> Another aspect is that cairo uses a different rendering equation in some
>> cases. The two equations used are:
>> unbounded: [(src IN shape) OP dest ] LERP_clip dest
>> bounded: [(src OP dest) LERP_shape dest ] LERP_clip dest
>> With shaped clips, the LERP_clip part is taken care of, and the first
>> equation is already directly supported by pixman. The second one could
>> be supported by adding new <op>_LERP operators that would use the
>> (src OP dest) LERP_shape dest
>> equation. For cairo's purposes, all we need is CLEAR_LERP and SRC_LERP,
>> but I think it could be useful to have the full set of LERP operators.
> Did you see Taekyun Kim's reply to this? He proposes this API:
> pixman_image_composite_xrender(op, src, shape, clip, dst)
> pixman_image_composite_bounded(op, src, shape, clip, dst)
> pixman_image_composite_simple(op, src, shape, clip, dst)
For some ops such as OVER these all produce the same image.
I think it would work better to have a single function, but expand the
op to include extra enumerations for the cases where the result is
different and a choice has to be made between bounded and unbounded.
More information about the Pixman