NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
http://www.j3d.org/faq/running.html#flickerSo, I've managed to get this fix to work in applications where I am in control of the construction of the Canvas3D. Unfortunately, construction of a Canvas3D in VisAD (the VisadCanvasJ3D) is quite buried. My code largely consists of extensions to the VisAD spreadsheet API. After much tracing, I see that a Canvas3D is ultimately constructed in the following way:
1. BasicSSCell constructDisplay() method constructs a new DisplayImplJ3D, constructing with just a name, or with a name and a TwoDDisplayRendererJ3D 2. If constructed with no VisADCanvasJ3D , DisplayImplJ3D constructs a VisADCanvasJ3D of its own.
As it happens, I am already overriding the constructDisplay() method in BasicSSCell in order to construct the DisplayImplJ3D with an extension of DisplayRendererJ3D of my own. I now want to extend VisADCanvasJ3D so that it is flicker free and use my extension of it in the construction of the DisplayImplJ3D. Should I use this constructor for the DisplayImplJ3D? :
public DisplayImplJ3D(String name, DisplayRendererJ3D renderer, int api, GraphicsConfiguration config, VisADCanvasJ3D c)where the DisplayRendererJ3D will be mine, the api argument is DisplayUmplJ3D.JPANEL, the GraphicsConfiguration will be the "best" configuration created as part of the safe Canvas3D construction process described in the FAQ above, and the VisADCanvasJ3D will of course be my extension created as per above?
-john -- john brecht sri international john.brecht@xxxxxxx 650 859 2325
visad
archives: