Hi, I have a problem here, I set everything up, followed instructions but whatever I do I can’t get my basic jogl code to execute…
import java.awt.;
import java.awt.event.;
import javax.swing.;
import net.java.games.jogl.;
/**
*
-
@author El Technico
*/
public class probeersel extends JFrame {/** Creates a new instance of probeersel */
public probeersel() {super("JOGL-probeersel"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); GLCapabilities caps = new GLCapabilities(); caps.setDoubleBuffered(true); caps.setHardwareAccelerated(true); GLCanvas canvas = GLDrawableFactory.getFactory().createGLCanvas(caps); canvas.addGLEventListener(new tekening3D()); canvas.setSize(800, 600); getContentPane().add(canvas, BorderLayout.CENTER); setSize(800, 600); centerWindow(this);
}
public void centerWindow(Component frame) {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();if (frameSize.width > screenSize.width ) frameSize.width = screenSize.width;
if (frameSize.height > screenSize.height) frameSize.height = screenSize.height;frame.setLocation (
(screenSize.width - frameSize.width ) >> 1,
(screenSize.height - frameSize.height) >> 1
);
}/**
-
@param args the command line arguments
*/
public static void main(String[] args) {final probeersel app = new probeersel();
//show what we’ve done
SwingUtilities.invokeLater (
new Runnable() {
public void run() {
app.setVisible(true);
}
}
);
}
-
}
class tekening3D implements GLEventListener {
public void init(GLDrawable drawable) {
GL gl = drawable.getGL();
gl.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
gl.glColor3i(0, 0, 0);
gl.glPointSize(4.0f);
}
public void display(GLDrawable drawable) {
GL gl = drawable.getGL();
gl.glBegin( GL.GL_POINTS );
gl.glVertex2i(100, 50);
gl.glVertex2i(100, 130);
gl.glVertex2i(150, 130);
gl.glEnd();
}
public void reshape(GLDrawable drawable, int x, int y, int width, int height) {
}
public void displayChanged(GLDrawable drawable,
boolean modeChanged,
boolean deviceChanged) {}
}
When I execute this, I get this error message:
net.java.games.jogl.GLException: Unable to lock surface
at net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.lockSurface(WindowsOnscreenGLContext.java:155)
at net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.makeCurrent(WindowsOnscreenGLContext.java:107)
at net.java.games.jogl.impl.GLContext.invokeGL(GLContext.java:203)
at net.java.games.jogl.GLCanvas.reshape(GLCanvas.java:97)
at java.awt.Component.setBounds(Component.java:1664)
at java.awt.Component.resize(Component.java:1601)
at java.awt.Component.setSize(Component.java:1593)
at net.java.games.jogl.impl.windows.WindowsGLContextFactory.getDummyGLContext(WindowsGLContextFactory.java:139)
at net.java.games.jogl.impl.windows.WindowsGLContext.choosePixelFormatAndCreateContext(WindowsGLContext.java:264)
at net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.create(WindowsOnscreenGLContext.java:204)
at net.java.games.jogl.impl.windows.WindowsGLContext.makeCurrent(WindowsGLContext.java:133)
at net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.makeCurrent(WindowsOnscreenGLContext.java:110)
at net.java.games.jogl.impl.GLContext.invokeGL(GLContext.java:203)
at net.java.games.jogl.GLCanvas.reshape(GLCanvas.java:97)
at java.awt.Component.setBounds(Component.java:1664)
at java.awt.BorderLayout.layoutContainer(BorderLayout.java:691)
at java.awt.Container.layout(Container.java:1020)
at java.awt.Container.doLayout(Container.java:1010)
at java.awt.Container.validateTree(Container.java:1092)
at java.awt.Container.validateTree(Container.java:1099)
at java.awt.Container.validateTree(Container.java:1099)
at java.awt.Container.validateTree(Container.java:1099)
at java.awt.Container.validate(Container.java:1067)
at java.awt.Window.show(Window.java:461)
at java.awt.Component.show(Component.java:1133)
at java.awt.Component.setVisible(Component.java:1088)
at JAVA3D.probeersel$1.run(probeersel.java:67)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)