Image surface problem when showing portion of artwork?

Ray at Daylon rayg at daylongraphics.com
Tue Sep 3 05:58:16 UTC 2024


Turns out the stroke artifacts were my mistake as well.
I was accidentally rounding each Bezier anchor point to the nearest 
integer coordinate while leaving control points unrounded.

My apologies for the false alarm.

Ray




On 9/1/2024 6:14 PM, Ray at Daylon wrote:
> Sorry, my bad. My renderer was doing knockout fills as part of rendering 
> only the outer portion of strokes and was doing unnecessary extra work 
> which when left out, renders the paths correctly.
> 
> The other problems with stroked paths still remain; afaik it looks like 
> a stroke is terminated too early when it meets a clip boundary (in this 
> case the edge of the image surface).
> 
> Ray
> 
> 
> 
> On 9/1/2024 2:18 PM, Ray at Daylon wrote:
>> Hi everyone,
>>
>> There seems to be a rendering issue in Cairo 1.18.0 where drawing 
>> paths in an image surface that shows only a subset of the artwork 
>> causes some paths to fill incorrectly.
>>
>> The attached file tiger_okay.jpg shows a portion of the standard Tiger 
>> image rendered on a 512 x 512 px image surface, and everything's fine.
>>
>> The file tiger_error.jpg, however, is a closer zoom also 512 x 512 px 
>> in size but the dark orange paths below and to the left of the eye 
>> cover more area than normal.
>>
>> No clipping is done either by the app or by telling Cairo to set a 
>> clip rectangle; an image surface is created and all the paths are 
>> drawn. I imagine there is a default clip rectangle matching the 
>> surface extent that Cairo initially defines.
>>
>> There are other problems with stroked paths in other areas at closer 
>> zooms, but I'll treat that as a separate issue.
>>
>> Ray Gardener
>> Daylon Graphics Ltd.


More information about the cairo mailing list