Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-7028648

Java 3D does not display with Java 1.7

XMLWordPrintable

    • x86
    • solaris_10

      FULL PRODUCT VERSION :
      java version "1.7.0-ea"
      Java(TM) SE Runtime Environment (build 1.7.0-ea-b130)
      Java HotSpot(TM) Server VM (build 21.0-b02, mixed mode)


      ADDITIONAL OS VERSION INFORMATION :
      SunOS ncssparc 5.10 Generic_144489-09 i86pc i386 i86pc

      EXTRA RELEVANT SYSTEM CONFIGURATION :
      Java 3D 1.5.2

      A DESCRIPTION OF THE PROBLEM :
      Java 3D objects do not display in a window with JDK 1.7.

      REGRESSION. Last worked in version 6u24

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Compile example and then run it.
      ../jdk1.7.0/bin/javac -cp ../j3d-1_5_2-solaris-x86/lib/ext/j3dcore.jar:../j3d-1_5_2-solaris-x86/lib/ext/j3dutils.jar:../j3d-1_5_2-solaris-x86/lib/ext/vecmath.jar HelloUniverse1.java
      ../jdk1.7.0/bin/java -cp ../j3d-1_5_2-solaris-x86/lib/ext/j3dcore.jar:../j3d-1_5_2-solaris-x86/lib/ext/j3dutils.jar:../j3d-1_5_2-solaris-x86/lib/ext/vecmath.jar HelloUniverse1

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      A window with a rotating cube.
      ACTUAL -
      A blank window.

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      /*
       * @(#)HelloUniverse1.java 1.55 02/10/21 13:43:36
       *
       * Copyright (c) 1996-2002 Sun Microsystems, Inc. All Rights Reserved.
       *
       * Redistribution and use in source and binary forms, with or without
       * modification, are permitted provided that the following conditions are met:
       * - Redistributions of source code must retain the above copyright notice,
       * this list of conditions and the following disclaimer.
       * - Redistribution in binary form must reproduce the above copyright notice,
       * this list of conditions and the following disclaimer in the documentation
       * and/or other materials provided with the distribution.
       *
       * Neither the name of Sun Microsystems, Inc. or the names of contributors may
       * be used to endorse or promote products derived from this software without
       * specific prior written permission.
       *
       * This software is provided "AS IS," without a warranty of any kind. ALL
       * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
       * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
       * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE
       * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
       * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS
       * LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
       * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
       * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
       * OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY
       * OF SUCH DAMAGES.
       *
       * You acknowledge that Software is not designed,licensed or intended for use in
       * the design, construction, operation or maintenance of any nuclear facility.
       */

      import java.applet.Applet;
      import java.awt.BorderLayout;
      import java.awt.GraphicsConfiguration;

      import javax.media.j3d.Alpha;
      import javax.media.j3d.BoundingSphere;
      import javax.media.j3d.BranchGroup;
      import javax.media.j3d.Canvas3D;
      import javax.media.j3d.RotationInterpolator;
      import javax.media.j3d.Transform3D;
      import javax.media.j3d.TransformGroup;
      import javax.vecmath.Point3d;

      import com.sun.j3d.utils.applet.MainFrame;
      import com.sun.j3d.utils.geometry.ColorCube;
      import com.sun.j3d.utils.universe.SimpleUniverse;


      public class HelloUniverse1 extends Applet {

        private SimpleUniverse u = null;

        public BranchGroup createSceneGraph() {
          // Create the root of the branch graph
          BranchGroup objRoot = new BranchGroup();

          // Create the TransformGroup node and initialize it to the
          // identity. Enable the TRANSFORM_WRITE capability so that
          // our behavior code can modify it at run time. Add it to
          // the root of the subgraph.
          TransformGroup objTrans = new TransformGroup();
          objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
          objRoot.addChild(objTrans);

          // Create a simple Shape3D node; add it to the scene graph.
          objTrans.addChild(new ColorCube(0.4));

          // Create a new Behavior object that will perform the
          // desired operation on the specified transform and add
          // it into the scene graph.
          Transform3D yAxis = new Transform3D();
          Alpha rotationAlpha = new Alpha(-1, 4000);

          RotationInterpolator rotator = new RotationInterpolator(rotationAlpha,
              objTrans, yAxis, 0.0f, (float) Math.PI * 2.0f);
          BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0),
              100.0);
          rotator.setSchedulingBounds(bounds);
          objRoot.addChild(rotator);

          // Have Java 3D perform optimizations on this scene graph.
          objRoot.compile();

          return objRoot;
        }

        public HelloUniverse1() {
        }

        public void init() {
          setLayout(new BorderLayout());
          GraphicsConfiguration config = SimpleUniverse
              .getPreferredConfiguration();

          Canvas3D c = new Canvas3D(config);
          add("Center", c);

          // Create a simple scene and attach it to the virtual universe
          BranchGroup scene = createSceneGraph();
          u = new SimpleUniverse(c);

          // This will move the ViewPlatform back a bit so the
          // objects in the scene can be viewed.
          u.getViewingPlatform().setNominalViewingTransform();

          u.addBranchGraph(scene);
        }

        public void destroy() {
          u.cleanup();
        }

        //
        // The following allows HelloUniverse to be run as an application
        // as well as an applet
        //
        public static void main(String[] args) {
          new MainFrame(new HelloUniverse1(), 256, 256);
        }
      }

      ---------- END SOURCE ----------

            anthony Anthony Petrov (Inactive)
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: