SunGraphics2D instead of Graphics2D

Mario Torre neugens at limasoftware.net
Fri Nov 18 15:17:44 PST 2011


Hello all,

While developing our Swing/JavaFX integration [1] I've found that with the aqua look and feel it doesn't paint correctly, unless I set the awt.nativeDoubleBuffering to false.

The reason for this is that internally, Graphics2D objects are casted to SunGraphics2D, probably this is a left over for some specific optimizations in the Apple JDK, but from the current OpenJDK code I can't see any reason for that cast to exist.

The problem surfaces because we use a special component to proxy heavyweight behavior to the Java FX view and to provide graphics and all the usual goodies that the swing hierarchy wants.

In particular, the graphics object for the heavyweight component is a proxy graphics that wraps a BufferedImage.

Since those cast gets in the way only when native double buffering is enabled on the Mac, I can workaround for older JDK releases, but I would really like to see if this fix can be pushed in for OpenJDK 7.

The webrev for the patch is here:

http://cr.openjdk.java.net/~neugens/use_graphics2d/webrev.01/

Any comments?

Cheers,
Mario

[1]  Some links:
       http://jroller.com/neugens/entry/jfreechartfx
       http://jroller.com/neugens/entry/oh_no_i_lost_focus
       http://thingsfx.com/
---
pgp key: http://subkeys.pgp.net/ PGP Key ID: 80F240CF
Fingerprint: BA39 9666 94EC 8B73 27FA  FC7C 4086 63E3 80F2 40CF

http://www.ladybug-studio.com

IcedRobot: www.icedrobot.org
Proud GNU Classpath developer: http://www.classpath.org/
Read About us at: http://planet.classpath.org
OpenJDK: http://openjdk.java.net/projects/caciocavallo/

Please, support open standards:
http://endsoftpatents.org/






More information about the macosx-port-dev mailing list