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