Hi Oleg,

   Bug 4633701
   - J3DGraphics.drawAndFlushImage(...) is ignoring GraphicsContext3D.setStereoMode()
   and
   4633700 - J3DGraphics2D.drawAndFlushImage(...) doesn't work well with 
J3DG2D.copyArea()

   is filed for them.

 We're looking to resolve all 3 bugs in v1.3 beta2.

Thanks for your bug report.

- Kelvin
--------------
Java 3D Team
Sun Microsystems Inc.

>Delivered-To: [EMAIL PROTECTED]
>Mime-Version: 1.0
>Date: Tue, 5 Feb 2002 14:43:13 -0800
>From: Oleg Pariser <[EMAIL PROTECTED]>
>Subject: [JAVA3D] J3DGraphics.drawAndFlushImage(...) is ignoring 
>GraphicsContext3D.setStereoMode()
>To: [EMAIL PROTECTED]
>
>Hi Kelvin,
>First of all thanks for accepting and filing bug#4632388.  Secondly,
>I filed a couple of reports in Sun's Bug Database in late December
>and since then haven't heard anything from Sun.  So I though maybe
>it's a good idea to post reports to this mailing list.
>
>Thanks,
>-Oleg Pariser  @  NASA-JPL Multimission Image Processing Lab
>[EMAIL PROTECTED]
>
>>Date: Thu, 20 Dec 2001 17:23:54 -0800 (PST)
>>From: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
>>To: [EMAIL PROTECTED]
>>Subject: Your Report: J3DGraphics.drawAndFlushImage(...) is ignoring
>>GraphicsContext3D.setStereoMode()
>>X-IM-Review-ID: 137628
>>Status: O
>>
>>  ************************************************
>>Your report has been assigned an internal review ID of: 137628
>>
>>This review ID is NOT visible on the "Java Developer Connection" (JDC).
>>
>>dateCreated: Thu Dec 20 18:23:52 MST 2001
>>type: bug
>>cust_name: Oleg Pariser
>>cust_email: [EMAIL PROTECTED]
>>jdcid: opariser
>>status: Waiting
>>category: java3d
>>subcategory: other
>>company: Jet Propulsion Laboratory
>>release: 1.2.1
>>hardware: sun4
>>OSversion: sol2.7
>>priority: 4
>>synopsis: J3DGraphics.drawAndFlushImage(...) is ignoring
>>GraphicsContext3D.setStereoMode()
>>description: FULL PRODUCT VERSION :
>>java version "1.4.0-beta3"
>>Java(TM) 2 Runtime Environment, Standard Edition (build
>>1.4.0-beta3-b84)
>>Java HotSpot(TM) Client VM (build 1.4.0-beta3-b84, mixed
>>mode)
>>
>>FULL OPERATING SYSTEM VERSION :
>>SunOS monolith 5.7 Generic_106541-16 sun4u sparc
>>SUNW,Ultra-5_10
>>
>>
>>
>>EXTRA RELEVANT SYSTEM CONFIGURATION :
>>Java 3D(TM) 1.3 Beta 1
>>Java Advanced Imaging(JAI) v1.1.1
>>
>>A DESCRIPTION OF THE PROBLEM :
>>In Immidiate mode, J3DGraphics2D.drawAndFlushImage(...) is
>>ignoring
>>GraphicsContext3D.setStereoMode(GraphicsContext3D.STEREO_LEFT)
>>setting and renders to both eyes(i.e. stereoMode
>>STEREO_BOTH).  What is interesting, if I set stereoMode to
>>STEREO_LEFT, then call GraphicsContext3D.draw(...), then
>>call J3DGraphics2D.drawAndFlushImage(...), the result is
>>correct: image is drawn only to left eye.
>>But if I set stereoMode to STEREO_LEFT and call
>>J3DGraphics2D.drawAndFlushImage(...) *without* calling
>>GraphicsContext3D.draw(...) first, the image gets drawn to
>>both eyes.
>>
>>P.S. In describing the problem I used STEREO_LEFT, but the
>>same is applicable to STEREO_RIGHT
>>
>>STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
>>1.Compile and run submitted test program which requires two
>>imageFileNames to run.
>>2. Notice that images gets rendered to both eyes, even
>>though the expected result is image#1 rendered to
>>STEREO_LEFT and image#2 rendered to STEREO_RIGHT
>>
>>EXPECTED VERSUS ACTUAL BEHAVIOR :
>>Expected result: After calling
>>GraphicsContext3D.setStereoMode(GraphicsContext3D.STEREO_LEFT)
>>J3DGraphics2D.drawAndFlushImage(...) renders only in left
>>eye.
>>Actual result: J3DGraphics2D.drawAndFlushImage(...) renders
>>in both eyes.
>>
>>This bug can be reproduced always.
>>
>>---------- BEGIN SOURCE ----------
>>import java.awt.*;
>>import java.awt.image.*;
>>import java.awt.color.*;
>>import javax.vecmath.*;
>>import javax.media.j3d.*;
>>import com.sun.j3d.utils.universe.SimpleUniverse;
>>import javax.swing.event.*;
>>import java.awt.event.*;
>>import javax.media.j3d.*;
>>import javax.media.jai.*;
>>import com.sun.media.jai.codec.ImageCodec;
>>import com.sun.j3d.utils.geometry.ColorCube;
>>import java.awt.image.renderable.*;
>>import java.io.*;
>>import javax.swing.*;
>>
>>public class StereoCanvas extends Canvas3D {
>>
>>     //Properties
>>
>>     private GraphicsContext3D     _gc3D;
>>     private J3DGraphics2D         _j3DG2D;
>>     private BufferedImage         _imageLeft;
>>     private BufferedImage         _imageRight;
>>
>>     public StereoCanvas(GraphicsConfiguration config,
>>                       BufferedImage imageLeft,
>>                       BufferedImage imageRight)
>>     {
>>       super(config);
>>
>>       _imageLeft = imageLeft;
>>       _imageRight = imageRight;
>>       //Make sure that stereo is enabled
>>       setStereoEnable(true);
>>       //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)
>>     {
>>       super.paint(g);
>>       if(_gc3D == null || _j3DG2D == null) {
>>
>>           setDoubleBufferEnable(false);
>>
>>           _gc3D = getGraphicsContext3D();
>>           _gc3D.setBufferOverride(true);
>>           _gc3D.setAppearance(new Appearance());
>>           _gc3D.setBackground(new Background(new
>>Color3f(Color.black)));
>>
>>       }
>>       _gc3D.setStereoMode(GraphicsContext3D.STEREO_BOTH);
>>       _j3DG2D = getGraphics2D();
>>       _gc3D.clear();
>>       _j3DG2D.flush(true);
>>
>>
>>       _gc3D.setStereoMode(GraphicsContext3D.STEREO_LEFT);
>>       //If the line below uncommented then this test program
>>       //runs correctly
>>       //_gc3D.draw(new ColorCube(0.01));
>>       _j3DG2D.drawAndFlushImage(_imageLeft, 0, 0, null);
>>       _gc3D.setStereoMode(GraphicsContext3D.STEREO_RIGHT);
>>       //If the line below uncommented then this test program
>>       //runs correctly
>>       //_gc3D.draw(new ColorCube(0.01));
>>       _j3DG2D.drawAndFlushImage(_imageRight, 0, 0, null);
>>
>>       _gc3D.flush(true);
>>
>>     }
>>
>>     /**
>>      * This function simply calls paint(Graphics g) which is
>>different
>>      * from parent's implementation
>>      */
>>     public void update(Graphics g)
>>     {
>>       paint(g);
>>     }
>>
>>     public static void main(String[] argv)
>>     {
>>       if(argv.length != 2) {
>>           System.out.println("Usage: java StereoCanvas
>>imageLeftFileName imageRightFileName");
>>       }
>>       GraphicsConfigTemplate3D template = new
>>GraphicsConfigTemplate3D();
>>       template.setStereo(GraphicsConfigTemplate.REQUIRED) ;
>>       GraphicsConfiguration config
>>                     =
>>GraphicsEnvironment.getLocalGraphicsEnvironment().
>>
>>getDefaultScreenDevice().getBestConfiguration(template);
>>       PlanarImage imageLeft = JAI.create("fileload", argv[0]);
>>       PlanarImage imageRight = JAI.create("fileload", argv[1]);
>>       StereoCanvas myCanvas3D =
>>           new StereoCanvas(config,
>>                            imageLeft.getAsBufferedImage(),
>>                            imageRight.getAsBufferedImage());
>>
>>       JFrame jFrame = new JFrame();
>>       jFrame.getContentPane().setLayout(new BorderLayout());
>>
>>               jFrame.getContentPane().add(myCanvas3D,
>>BorderLayout.CENTER);
>>
>>       jFrame.pack();
>>       jFrame.setSize(200, 300);
>>       jFrame.setVisible(true);
>>     }
>>}
>>
>>---------- END SOURCE ----------
>>
>>CUSTOMER WORKAROUND :
>>Set stereoMode to STEREO_LEFT and call
>>GraphicsContext3D.draw(...) before calling
>>J3DGraphics2D.drawAndFlushImage(...)
>>workaround:
>>comments: (company - Jet Propulsion Laboratory , email -
>>[EMAIL PROTECTED])
>
>
>--
>
>===========================================================================
>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".

Reply via email to