I am developing a 3D terrain visualization program http://www.virtual-globe.info. I am using JOGL/JSR-231 for rendering. When handling 3D objects (buildings etc…) I use Aviatrix3D / Xj3D for loading and drawing 3D models, which means I have to use the Aviatrix3D render loop. Aviatrix3D uses makeCurrent/release in its own render loop instead of the Animator/listener interface. In addition to a large perspective 3D window I want a smaller orthographic overview map window using simple OGL calls and the default JOGL animator interface. The two windows should share textures.
With the previous versions (Aviatrix3D / Xj3D v:1.0, JOGL v:1.1.1) this worked well (Java Web Start example: http://globe.sintef.no/webstart/hemne-simple.jnlp), but now it bombs when creating shared contexts:
However, if there is a delay between the creation of the two windows everything works well. Try: http://www.virtual-globe.info/VirtualGlobeStarter.php?name=Kyrksæterøra&dataset=http%3A%2F%2Fwww.virtual-globe.info%2Fhemne%2Fhemne-features.vgml&libs=Xj3D&viewpoint=9.095805309133254,63.29461450913526,107.50134078584125,227.38738411964144,-7.322190162622405. Open menu Tools/Overview map
to open the Map view.
According to the Aviatrix3D/Xj3D guys running different render loop models is supposed to work. It seems like there are some delayed initialization that is not quite completed before the second viewer starts, and it is not adequately synchronized when using the two different render loop models or what? Or have I run into one of the famous ATI bugs? I’m developing on a HP laptop with an X1600.
Rune Aasgaard