Hi!<div>I&#39;m Synfig developer and I am working on incorporate Cairo graphics on current Synfig render method. Synfig is a 2D vector animation application but it has some particularities. It does support layers that act like raster filters (blur, distortions, etc.) apart of the typical geometry layers (circle, rectangle, polygon, bezier shape. etc).</div>
<div><br></div><div>Synfig has its own Surface system that uses float ARGB color and HDR support. Each geometry layer renders its content using the Synfig surface primitives (very simple ones). The filter layers does its filter job by asking the the layers below it for the color result on a given user space point (x,y). Doing a subsampling of the returned value around the pixel position allows to render properly the filter layer. So all the geometry layers should define a function to return the color that it renders based on a give x,y position.</div>
<div><br></div><div>When Cairo were implemented, floating point color and HDR will be lost. But that&#39;s not the problem.</div><div><br></div><div>My plan to implement Cairo libraries is replace the geometry layers low level calls to Synfig surface with high level calls to Cairo context API. But the problem comes when the layer has to define a member function to return the color on a certain x,y position. It is needed to give support to the filter layers.</div>
<div><br></div><div>I&#39;ve seen that cairo_context_t has three member functions that do something similar. They return true if the given x,y point is inside the path or the fill:</div><div><br></div><div>cairo_in_fill, cairo_in_stroke and cairo_in_clip</div>
<div><br></div><div>Since they were plain color I can assume than when the returned value is true, the color at x,y is the layer&#39;s color. </div><div>The problem comes when using gradient patterns. I don&#39;t find any Cairo function that tells me the color of the gradient at a certain x,y, position.</div>
<div><br></div><div>Any idea?</div><div><br></div><div>Thanks in advance!</div><div>-- <br>Carlos<br><a href="http://synfig.org" target="_blank">http://synfig.org</a><br><br>
</div>