I have come across a peculiar problem where a circle is not rendered correctly due to its opacity. If the opacity of the circle is 1.0, then it is fully painted. If the circle is given fractional opacity, then part of the circle is clipped.
Other attributes that appear to trigger this unexpected behaviour is the radius of the circle, a fractional scaling factor and the number of circles drawn.
I have come across this situation inadvertently and can not describe the situation better. I am submitting a test case along.
Created attachment 15141 [details]
Created attachment 15698 [details]
This should fix it, though it should be a temporary fix (until enclosingIntRect is fixed).
Comment on attachment 15698 [details]
There are multiple uses of enclosingIntRect(const FloatRect&) in SVG code, so I am suspicious of a patch that targets just one of them. I think fixing enclosingIntRect would be much better.
I agree, enclosingIntRect should be fixed instead. The comment there claims there is no ceilf on win32 but that seems to be wrong as far as I can tell: <http://msdn2.microsoft.com/en-us/library/atdhw2dx(VS.80).aspx>. Even on platforms that legitimately lack ceilf it would be better to use ceil than to round.
r- to consider fix to enclosingIntRect instead.
Sad to see this patch rotting in bugzilla. If all that's needed is a ceilf in enclosingIntRect, I would expect that would be easy to fix (and could be related to bug 16015 as well?)
This is still a problem in
Safari Version 3.1.1 (5525.18)
Suspiciously similar issue:
Seems to work fine in recent builds.