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