[OpenJDK 2D-Dev] Request for review: JDK-7159455 : Nimbus scrollbar rendering glitch with xrender enabled on i945GM
andrew.brygin at oracle.com
Mon Sep 2 11:20:54 UTC 2013
the fix looks fine to me.
On 8/29/2013 11:19 PM, Clemens Eisserer wrote:
> 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?
More information about the 2d-dev