I finally got my system going (Linux FC10, GeForce 9500 GT, JDK 1.6) and starting building my application.
I started using GLCanvas objects and switched to GLJPanel objects n turned on Java2D.opengl (with -Dsun.java2d.opengl=true in cmd line). Boy, what problems…
The application implements an MDI look n feel. I plop GLJPanels on it that display some real-time graphs. In summary:
-
with using GLCanvas (instead of GLJPanels), everything works but I’m seeing some funny business with the simple menu system I have. If one of the GLCanvas objects is near the menu bar, then it hides the menus as I pull them down. This didn’t happen with JDK 1.5. CPU utilization is about 40-45% with 5 separate graphs going at 64Hz display rate.
-
If I enable sun.java2d.opengl=true, the CPU utilization is roughly the same, maybe a less.
-
When I change the GLCanvas objects to GLJPanels and disable sun.java2d.opengl, everything works well - no funny business with the menus, but CPU utilization is about 120% on my dual core duo.
-
when I then enable sun.java2d.opengl (using GLJPanels), I experience lots of problems (but the CPU utilization drops to about 40% with 5 graphs going!):
a) serious flashing of graphs. Some partially hide others and the borders of those in back flash through to those in the front.
b) coordinate system is screwed up - 0,0 seems to be relative to my JFrame.
c) my text object that uses com.sun.opengl.util.j2d.TextRenderer causes the application to completely hang.
Ouch.
I can supply sample code if anyone wishes.
the java2d opengl pipeline is very instable and therefore not widely used. Try to circumvent it whenever possible to enable the pipeline.
but always use
don’t use the java2d opengl pipeline for know.