Hi Oleg,
We can reproduce the problem and bug 4632388 is
filed to investigate.
Thanks for your bug report.
- Kelvin
-----------
Java 3D Team
Sun Microsystems Inc.
>Delivered-To: [EMAIL PROTECTED]
>Mime-Version: 1.0
>Date: Fri, 1 Feb 2002 18:28:43 -0800
>From: Oleg Pariser <[EMAIL PROTECTED]>
>Subject: [JAVA3D] J3D1.3b1+J3DGraphics2D rendering problem
>To: [EMAIL PROTECTED]
>
>I have encountered some troubling behavior in Java3D beta1 on
>Solaris platform(didn't test any other). It occurs under immediate
>mode in J3D and only in the new beta version: the previous
>release(j3dv1.2) is working just fine. Here are the relevant steps
>that I am taking in "public void paint(Graphics g)" of subclass of
>Canvas3D:
>1. GraphicsContext3D.setBackground(blue)
>2. J3DGraphics2D.setColor(Red)
>3. J3DGraphics2D.drawRect(10, 10, 100, 100)
>4. J3DGraphics2D.flush(true)
>
>So when the program gets executed the expected result is red
>rectangle on blue background. Well, blue background is always there
>but red rectangle is not. What makes this story more interesting is
>that red rectangle is not getting rendered most of the time but not
>always: sometimes the program works just fine. So if I execute the
>program say 10 times, 3 of those times the program would actually
>work correctly. In the process of creating the test case, I found
>out that it doesn't matter what particular method of J3DGraphics2D is
>called or how many of them are there, triggering the repaint also
>doesn't help. Also I think the problem is occurring less frequently
>if application runs remotely.
>
>I guess that's all the useful info I can provide on this issue.
>Below is my exact Hardware and Software configuration and the Test
>program.
>Any help would be greatly appreciated,
>
>-Oleg Pariser @ NASA-JPL Multimission Image Processing Lab
>[EMAIL PROTECTED]
>
>---Configuration----------------------------------------
>Java(TM) 2 Runtime Environment, Standard Edition (build
>1.4.0-rc)
>Java 3D(TM) 1.3 Beta 1
>
>FULL OPERATING SYSTEM VERSION :
>SunOS monolith 5.7 Generic_106541-16 sun4u sparc
>SUNW,Ultra-5_10
>
>--TestCanvas3D.java------------------------------------------------------------
-
>import java.awt.*;
>import java.awt.color.*;
>import javax.swing.*;
>import javax.vecmath.*;
>import javax.media.j3d.*;
>import com.sun.j3d.utils.universe.SimpleUniverse;
>
>class TestCanvas3D extends Canvas3D {
>
> private GraphicsContext3D _gc3D;
> private J3DGraphics2D _j3DG2D;
>
> public TestCanvas3D()
> {
> super(GraphicsEnvironment.getLocalGraphicsEnvironment().
> getDefaultScreenDevice().getBestConfiguration(
> new GraphicsConfigTemplate3D()));
> //Stop the renderer, since we use immediate mode rendering.
> stopRenderer();
> // Create a simple scene and attach it to the virtual universe
> SimpleUniverse universe = new SimpleUniverse(this);
>
> // This will move the ViewPlatform back a bit so the
> // objects in the scene can be viewed.
> universe.getViewingPlatform().setNominalViewingTransform();
> }
> public void paint(Graphics g)
> {
> System.out.println("paint called: bounds="+g.getClipBounds());
>
> super.paint(g);
>
> if(_gc3D == null || _j3DG2D == null) {
> System.out.println("Either _gc3D or _j3DG2D are null");
> setDoubleBufferEnable(false);
>
> _gc3D = getGraphicsContext3D();
> _gc3D.setBufferOverride(true);
> _gc3D.setAppearance(new Appearance());
> _gc3D.setBackground(new Background(new Color3f(Color.blue)));
> }
>
> _gc3D.clear();
> _j3DG2D = getGraphics2D();
> _j3DG2D.flush(true);
> _gc3D.flush(true);
>
> _j3DG2D.setColor(Color.red);
> _j3DG2D.drawRect(10, 10, 100, 100);
> _j3DG2D.flush(true);
> _gc3D.flush(true);
> System.out.println("done with paint");
> }
> public void update(Graphics g)
> {
> paint(g);
> }
> public static void main(String[] argv)
> {
> TestCanvas3D myCanvas = new TestCanvas3D();
> JFrame jFrame = new JFrame();
> jFrame.getContentPane().setLayout(new BorderLayout());
> jFrame.getContentPane().add(myCanvas);
>
> jFrame.pack();
> jFrame.setTitle("TestCanvas3D");
> jFrame.setLocation(250, 200);
> jFrame.setSize(200, 300);
> jFrame.setVisible(true);
> }
>}
>---end of TestCanvas3D.java---------------------------------------
>--
>
>===========================================================================
>To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
>of the message "signoff JAVA3D-INTEREST". For general help, send email to
>[EMAIL PROTECTED] and include in the body of the message "help".
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".