Hi !
I’m trying to use JOGL with QtJambi. I’m using code I found in tutorials (some of them are very old) and forums but nothing is displayed. The QGLWidget initialization prevents the window to be displayed.
I have no error in the console. The program is running, but there is no window.
Is there something I’m doing wrong ?
Here is my code.
The GLWidget
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| public class QtJOGLTestGLWidget extends QGLWidget { protected GLContext context; protected GL gl; public QtJOGLTestGLWidget() { this(null); } public QtJOGLTestGLWidget(QWidget parent) { super(parent); } @Override protected void initializeGL() { GLProfile profile = GLProfile.get(GLProfile.GL2); GLCapabilities glCaps = new GLCapabilities(profile); glCaps.setPBuffer(true); GLDrawableFactory factory = GLDrawableFactory.getFactory(profile); this.context = factory.createExternalGLContext(); this.gl = this.context.getGL(); } @Override protected void resizeGL(int w, int h) { GL2 gl2 = this.gl.getGL2(); gl2.glViewport(0, 0, w, h); gl2.glMatrixMode(GL2.GL_PROJECTION); float r = 3.0f / 2.0f; gl2.glLoadIdentity(); gl2.glFrustum(-0.2, 1 * r, -0.2, 1.2, 1, 2000); } @Override protected void paintGL() { GL2 gl2 = this.gl.getGL2(); gl2.glMatrixMode(GL2.GL_MODELVIEW); gl2.glLoadIdentity();
gl2.glBegin(GL.GL_TRIANGLES); { gl2.glColor3f(1, 0, 0); gl2.glVertex3f(0, 0, -1); gl2.glColor3f(0, 1, 0); gl2.glVertex3f(0, 1, -1); gl2.glColor3f(0, 0, 1); gl2.glVertex3f(1, 0, -1); } gl2.glEnd(); } } |
The window
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| public class QtJOGLTestFrame extends QMainWindow { protected QtJOGLTestGLWidget glWidget; protected QGridLayout gridLayout; public QtJOGLTestFrame() { this.gridLayout = new QGridLayout(); this.glWidget = new QtJOGLTestGLWidget(this); this.gridLayout.addWidget(this.glWidget, 0, 0); QWidget widget = new QWidget(); widget.setLayout(this.gridLayout); this.setCentralWidget(widget); this.setWindowTitle("Hello JOGL"); } } |
Main
1 2 3 4 5 6 7 8 9 10 11 12 13
| public class QtJOGLTest { public static void main(String[] args) { QApplication.initialize(args); QtJOGLTestFrame frame = new QtJOGLTestFrame(); frame.resize(800, 600); frame.show(); QApplication.execStatic(); } } |
I updated the jogamp .jar today and all my other programs using JOGL with swing work well.
Thank you in advance.
