Login  Register

Re: Issue with Java 3D under OpenJDK 7 / Mac OS X

Posted by InteractiveMesh on Jan 25, 2013; 11:00am
URL: https://forum.jogamp.org/Issue-with-Java-3D-under-OpenJDK-7-Mac-OS-X-tp4025259p4028012.html

@Traksewt

Slept well? Your app runs fine because the Canvas3D fills the entire window. Am I right?


@Julien/Sven

As mentioned earlier, the most critical points are Mac/Oracle JRE/JOGL's x/y-positioning and z-ordering issues, see http://forum.jogamp.org/Mac-OS-X-10-7-Oracle-JRE-7-Swing-integration-issues-td4027780.html.

Java 3D's Canvas3D is affected accordingly. Manu's Sweet Home 3D can't be run in onscreen mode due to these problems.

The event list on my webpage might be unclear, it doesn't 'announce' my participation. Thanks for your kind invitation, but it is most unlikely that I will visit Siggraph 2013.
 
 
@Harvey
 
Unfortunately, the changes have several dependencies. A runable build requires all changes to be implemented. The following order might be helpful:

At first or at last "4. Texture object generation"
 - Pipeline : new method 'generateTexture', subclasses JoglPipeline and NoopPipeline implement it
 - MasterControl : methods 'get/freeTexture2DId/Texture3DId' and the field 'textureIdCount' are removed (outcommented)
 - Canvas3D : new static method 'generateTexture' accessing the pipeline
 - J3DGraphics2DImpl and TextureRetained : call Canvas3D to generate texture object names instead of MasterControl
 - Texture3DRetained is now 'served' by its superclass TextureRetained, obsolete overriden methods are removed (outcommented)
 
Next "3. Best configuration"
 - J3DCapsChooser is added as internal class to JoglPipeline
 - JoglPipeline.getBestConfiguration is rewritten by using J3DCapsChooser and calling the added method JoglPipeline.getAWTGraphicsConfiguration
 - JoglPipeline.getGraphicsConfig is rewritten
 - JoglPipeline : removed (outcommented): internal classes CapabilitiesCapturer, IndexCapabilitiesChooser, and methods 'createAwtGraphicsConfiguration'
   
Next "2. Offscreen rendering"
 - JoglPipeline.createQueryContext supports now offscreen Canvas3D explicitly
 - JoglPipeline.createOffScreenBuffer is rewritten (requires 3.)
 - JoglPipeline.createNewContext is partly rewritten and covers offscreen and onscreen Canvas3Ds (requires 3., see also 1.)
 - JoglPipeline.readOffScreenBuffer has new code to manage FBO in addition to pbuffer
 - JoglPipeline.destroyContext covers offscreen and onscreen Canvas3Ds (see 1.)
 - JoglPipeline.destroyOffScreenBuffer is still called but currently empty
 - Canvas3D.createNewContext : 'antialiasingSet = false;' added (reason is commented)
 - Renderer.doWork : case (opArg == SWAP) don't swap a prospective double buffered AutoOffScreenCanvas3D (e.g. JCanvas3D)
 - Renderer.doWork : case 'if (reqType == MasterControl.SET_GRAPHICSCONFIG_FEATURES)' enable double buffered (auto/manual) offscreen Canvas3D
 
Next "1. Mac OS X 10.7+ / Oracle JRE 7+"
 - Canvas3D : interface OffscreenLayerOption implemented
 - JoglDrawable : NativeWindow support added
 - JoglDrawable : method 'hasFBObjectSizeChanged' added, called from Renderer
 - JoglPipeline : internal class QueryCanvas adapted
 - JoglPipeline.createQueryContext adapted
 - JoglPipeline.createNewContext is partly rewritten and covers offscreen and onscreen Canvas3Ds (requires 3., see also 2.)
 - Pipeline : new method 'resizeOffscreenLayerSurface', subclasses JoglPipeline and NoopPipeline implement it
 - JoglPipeline.resizeOffscreenLayerSurface added
 - Renderer.doWork : Canvas3D/FBObject size check, calling JoglPipeline.resizeOffscreenLayerSurface
 - JoglPipeline.destroyContext covers offscreen and onscreen Canvas3Ds (see 2.)

August