Login  Register

JME3 Unified Renderer - Canvas Use Issue

Posted by dardzull@yahoo.com on Feb 06, 2013; 6:14am
URL: https://forum.jogamp.org/JME3-Unified-Renderer-Canvas-Use-Issue-tp4028152.html

How do I get a canvas of some sort (JoglNewtCanvas, JoglCanvas, etc.) out of JME3 so that I can put it into a JFrame?  The following code lets me get a canvas out that does not render.

I have tried:

----------------
public class appTest extends SimpleApplication
{
    public static void main(String[] args)
    {
            AppSettings settings = new AppSettings(true);

            settings.setHeight(480);
            settings.setWidth(640);
            settings.setRenderer("JOGL");
            settings.setCustomRenderer(JoglNewtCanvas.class);

            final appTest app = new appTest();
            app.setShowSettings(false);
            app.setSettings(settings);
            app.start();

            SwingUtilities.invokeLater(new Runnable()
            {
                public void run()
                {
                    final JoglNewtCanvas ctx = (JoglNewtCanvas) app.getContext();
                    ctx.getCanvas().setBounds(0, 0, app.settings.getWidth(), app.settings.getHeight());

                    NewtCanvasAWT canvas = ctx.getCanvas();
                    canvas.setVisible(true);
                   
                   JFrame jFrame = new JFrame("Screen");
                   jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                   jFrame.add(canvas);
                   jFrame.setSize(app.settings.getWidth(), app.settings.getHeight());
                   jFrame.setVisible(true);
              }
         }
    }
    @Override
    public void simpleInitApp()
    {
    }
}
----------------

But it just gives a blank screen.  

I also tried using JoglCanvas with the following changes for the renderer and it just crashed out with a Class Cast Exception.

----------------

       settings.setCustomRenderer(JoglCanvas.class);

....

            final JoglCanvas ctx = (JoglCanvas) app.getContext();
            ctx.getCanvas().setBounds(0, 0, app.settings.getWidth(), app.settings.getHeight());
             Canvas canvas = ctx.getCanvas();

----------------


Any help is appreciated.