Hi Clemens,

Now that we've narrowed it down to a quadrant rotation at best, can't we get by with only transforming x,y and x+w,y+h? Or is the adjust method used from other locations that might have a non-quadrant transform? (Or do any callers depend on srcCoords and dstCoords being fully populated?). If it's a mixture of quadrant and general transforms, then I think it may make sense to have the adjust method do the test, determine how much it needs to transform, and then return the result, but that is probably a minor optimization compared to other work going on (not sure if benchmarks would notice the difference).

I also noticed that the bounds are rounded. If the intent is to catch every single pixel, then shouldn't those be floor/ceil operations? If the intent is to "rasterize" the transformed rectangle then filled rectangles (and shapes) use a "round down" calculation, but Math.round() is a "round up" calculation. How is the resulting compositeBounds used?

Also, I noticed that you added a new wild-card import into one of the files. I believe we deprecated that practice in the FX source base, but I don't know what the standard practice is in OpenJDK and didn't see any statements about it in the OpenJDK style guildelines.

                                ...jim

On 10/16/13 10:55 AM, Clemens Eisserer wrote:
Hi,

As Jim pointed out, my earlier fix for bug JDK-7159455 wasn't entirely
correct as it allowed some shear-transformations to pass a check for a
fast-path although they should have been rejected. He proposed a way
of using the capabilities already provided by AffineTransform, which
is correct, shorter and most likely more efficient (thanks!).

Please find the follow-up fix for  JDK-7159455 at:
http://cr.openjdk.java.net/~ceisserer/fix12/webrev.00/

Thanks, Clemens

Reply via email to