Hello Again,
Try the following out, I just hacked it together for an example but seems to work. Try commenting out the setDoubleBuffered method in createGLJPanel and it won’t work anymore.
/*
* Created on Dec 20, 2003
*
*/
import net.java.games.jogl.*;
import javax.swing.*;
import java.awt.*;
/**
* @author Stephen Johnson
*
*
*/
public class CsGLJPanelTesting extends JFrame implements GLEventListener
{
public CsGLJPanelTesting()
{
super("CsGLJPanelTesting");
String strSelection = getSelection();
if(strSelection.equals("GLCanvas"))
createGLCanvas();
else
createGLJPanel();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(500,500);
this.setVisible(true);
}
private String getSelection()
{
Object selection;
String glpanels[] = {"GLCanvas","GLJPanel"};
selection = JOptionPane.showInputDialog(this,
"",
"GL Panel Selection",
JOptionPane.QUESTION_MESSAGE,
null,
glpanels,
glpanels[0]
);
return (String) selection;
}
private void createGLJPanel()
{
GLCapabilities c = new GLCapabilities();
c.setDoubleBuffered(false);
GLJPanel panel = GLDrawableFactory.getFactory().createGLJPanel(c);
panel.addGLEventListener(this);
this.getContentPane().setLayout(new GridLayout(1,1));
this.getContentPane().add(panel);
}
private void createGLCanvas()
{
GLCapabilities c = new GLCapabilities();
GLCanvas canvas = GLDrawableFactory.getFactory().createGLCanvas(c);
canvas.addGLEventListener(this);
this.getContentPane().setLayout(new GridLayout(1,1));
this.getContentPane().add(canvas);
}
public static void main(String argsv[])
{
CsGLJPanelTesting p = new CsGLJPanelTesting();
}
/* (non-Javadoc)
* @see net.java.games.jogl.GLEventListener#init(net.java.games.jogl.GLDrawable)
*/
public void init(GLDrawable glDrawable)
{
GL gl = glDrawable.getGL();
gl.glClearColor(0.0f,0.0f,0.0f,0.0f);
gl.glColor3d(1.0,1.0,1.0);
}
/* (non-Javadoc)
* @see net.java.games.jogl.GLEventListener#display(net.java.games.jogl.GLDrawable)
*/
public void display(GLDrawable glDrawable)
{
GL gl = glDrawable.getGL();
gl.glClear(GL.GL_COLOR_BUFFER_BIT);
gl.glLoadIdentity();
gl.glTranslated(0.0,0.0,-2.0);
gl.glBegin(GL.GL_TRIANGLES);
gl.glVertex3d(0.0,0.0,0.0);
gl.glVertex3d(0.0,0.5,0.0);
gl.glVertex3d(0.5,0.0,0.0);
gl.glEnd();
}
public void reshape(GLDrawable glDrawable, int x, int y, int width, int height)
{
GL gl = glDrawable.getGL();
GLU glu = glDrawable.getGLU();
gl.glViewport(x,y,width,height);
gl.glMatrixMode(GL.GL_PROJECTION);
gl.glLoadIdentity();
glu.gluPerspective(65.0,width/height,1.0,20.0);
gl.glMatrixMode(GL.GL_MODELVIEW);
}
/* (non-Javadoc)
* @see net.java.games.jogl.GLEventListener#displayChanged(net.java.games.jogl.GLDrawable, boolean, boolean)
*/
public void displayChanged(GLDrawable glDrawable, boolean arg1, boolean arg2) {
// TODO Auto-generated method stub
}
}
,
steve