Once again I discovered bad behaviour on AA when an elliptical brush
is rotated, therefore I decided to rewrite the function. I'm attaching
the patch. I have tested this quiet a bit and it seems to solve all
issues and I think it even improves AA quality.

Since the function is more complex than the previous, I decided to do
some profiling. I have pasted a snippet of the code I used to do this
here: http://pastebin.com/MpXFQCx6

The results are VERY weird.
This is what I get for not inlined calls:

no-aa time: 856 ms
aa time: 816 ms

And this is what I get for inlined calls:

no-aa time: 855 ms
aa time: 482 ms

So it appears that the "calculate_rr" function is not getting inlined
for some reason, but even when not inlined "calculate_rr_antialiased"
finishes faster for some reason I can't explain. Either some compiler
voodoo is happening here or my profiling code is bogus.

I have also noticed that when the brush aspect ratio is very high and
the hardness is low, the dark spot at the center of the dabs tend to
disappear, however this is due to it being antialiased and I believe
there's little I can do here.

-- 
Micael Dias

Attachment: 0001-brushlib-rewrite-antialiasing-approximation.patch
Description: Binary data

_______________________________________________
Mypaint-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/mypaint-discuss

Reply via email to