Re: Trying a new operator type

Carlos López González <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <CAF52pz+27asczw2dVLrYQU574=wbHufpdkBCMe9XKeDVhw+-NA@mail.gmail.com>
Hi!
finally I figured out how to preform the new Cairo operator. I would
be glad if someone finds other way to perform the same operator with a
simplest and effective code:

http://pastebin.com/xtfGeYSs

In the pasted code it is explained what does the new operation do.
Cheers!

2012/10/1 Carlos López González <[email protected]>:
> Hi,
> I'm trying to create new operators for a custom drawing application,
> using the current Cairo operators and its compositing abilities.
> So far I want an operator that (using the same nomenclature than in
> the tutorials):
>
> A= source
> B= destination
> R= result
> alpha= float value to be used
>
>
> aR= (aA*-aB)*alpha+aB = aA*alpha + (1.0-alpha)*aB
> xR=((xaA-xaB)*alpha+xaB)/aR = (xaA*alpha+(1.0-alpha)*xaB)/aR
>
> So when alpha =1 then aR=aA and so xR = xA
>
> It is like a mixture between SOURCE and OVER.
>
> To try this I've written a code like this:
> http://pastebin.com/x7hxmbBf
>
> Notice that the section commented with "Draw the surface over itself
> with 1.0-alpha"
> is going to be part of a external function that would receive a
> cairo_t* an the alpha value as arguments.
> This function doesn't know anything about the state of cairo_t* and
> the state of its surface.
> In the most general case the cairo_t* has commands already added and
> surface could come from
> other portion of code that has drawn things on it. Like in the example code
>
> The result I have when run that code is strange. The rectangle's alpha
> outside the overlapping area is not 0.65 or near (due to rounding to
> char).
> Instead of that the rectangle's alpha in that area is 0.773.
> The circle's alpha outside the overlapping area is not correct but has
> sense (0.80).
>
> So I have two questions:
>
> 1) What's the best way to perform the desired operations
> 2) Why the rectangle's alpha is wrong?
>
> Thank you in advance.
> Cheers!
> --
> Carlos
> http://synfig.org



-- 
Carlos
http://synfig.org
-- 
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.