Looks reasonable to me. Need someone else to review too.
-phil. On 8/29/2013 12:19 PM, Clemens Eisserer wrote:
Hi, Please review my fix for: JDK-7159455 : Nimbus scrollbar rendering glitch with xrender enabled on i945GM available at: http://cr.openjdk.java.net/~ceisserer/7159455/webrev.00/ Problem description: Because of low coordinate precision on intel 945GM (gen3), nimbus scrollbares where rendered with glitches. Fix description: Because Java2D doesn't interpolate image-borders, the xrender pipeline has to set sampling outside of source destinations to REPEAT_PAD (extend with pixel value at border color) and use a mask. Currently, for performance reasons, it uses a smaller mask and scales it, which causes glitches on i945GM due to low coordinate precision. This is a seperate issue I will work on. Luckily, those code-paths are not really needed for Nimbus: When image-borders are axis aligned, we don't need a mask and can use the composite region as "mask". The blits generated by Nimbus fall into this category, however the logic to detect axis-aligned blits (isMaskOmmitable() in old code) was completely broken. I moved the detection logic to adjustCompositeBounds(), which also calculates the destination composite area size. By transforming outline points or the destination area it checks for axis alignment. I also reordered things a bit, to make it more readable. Thanks, Clemens PS: Is it ok to keep the line-width of 120 chars?