SunGraphics2D instead of Graphics2D (question for pals from Apple)
Alexander Potochkin
Alexander.Potochkin at oracle.com
Mon Nov 21 11:13:08 PST 2011
The best place to ask is here anyway
:-)
Kevin, Mike, could you please comment is it safe to apply the proposed fix?
Thanks!
alexp
> Hello Mario
>
> Your patch looks very logic,
> let me ask the Apple guys what were the reasons behind that
> SunGraphics2D cast
>
> Thanks!
> alexp
>> 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