Login  Register

Re: Unable to determine GraphicsConfiguration

Posted by Goofyseeker3 on Mar 13, 2024; 1:53pm
URL: https://forum.jogamp.org/Unable-to-determine-GraphicsConfiguration-tp4042444p4043396.html

I re-wrote the self-contained example to use only normal javax.swing JFrame window components.
Now it runs on windows_amd64 without any arguments and also directly from runnable jar double click.

Here is the code for reference:
---------------------------------

import java.awt.Dimension;

import javax.swing.JFrame;

import com.jogamp.opengl.GL;
import com.jogamp.opengl.GL2;
import com.jogamp.opengl.GL2ES1;
import com.jogamp.opengl.GLAutoDrawable;
import com.jogamp.opengl.GLCapabilities;
import com.jogamp.opengl.GLEventListener;
import com.jogamp.opengl.awt.GLJPanel;
import com.jogamp.opengl.fixedfunc.GLLightingFunc;
import com.jogamp.opengl.fixedfunc.GLMatrixFunc;
import com.jogamp.opengl.util.Animator;
 
/**
 * Self-contained example (within a single class only to keep it simple)
 * displaying a rotating quad
 */
public class JOGLRenderEngine implements GLEventListener {
        private float rotateT = 0.0f;
 
        @Override public void display(GLAutoDrawable gLDrawable) {
                final GL2 gl = gLDrawable.getGL().getGL2();
                gl.glClear(GL.GL_COLOR_BUFFER_BIT);
                gl.glClear(GL.GL_DEPTH_BUFFER_BIT);
                gl.glLoadIdentity();
                gl.glTranslatef(0.0f, 0.0f, -5.0f);
 
                // rotate about the three axes
                gl.glRotatef(rotateT, 1.0f, 0.0f, 0.0f);
                gl.glRotatef(rotateT, 0.0f, 1.0f, 0.0f);
                gl.glRotatef(rotateT, 0.0f, 0.0f, 1.0f);
 
                // Draw A Quad
                gl.glBegin(GL2.GL_QUADS);      
                gl.glColor3f(0.0f, 1.0f, 1.0f);   // set the color of the quad
                gl.glVertex3f(-1.0f, 1.0f, 0.0f);   // Top Left
                gl.glVertex3f( 1.0f, 1.0f, 0.0f);   // Top Right
                gl.glVertex3f( 1.0f,-1.0f, 0.0f);   // Bottom Right
                gl.glVertex3f(-1.0f,-1.0f, 0.0f);   // Bottom Left
                // Done Drawing The Quad
                gl.glEnd();                                                    
 
                // increasing rotation for the next iteration                  
                rotateT += 0.2f;
        }
 
        @Override public void init(GLAutoDrawable glDrawable) {
                GL2 gl = glDrawable.getGL().getGL2();
                gl.glShadeModel(GLLightingFunc.GL_SMOOTH);
                gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
                gl.glClearDepth(1.0f);
                gl.glEnable(GL.GL_DEPTH_TEST);
                gl.glDepthFunc(GL.GL_LEQUAL);
                gl.glHint(GL2ES1.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST);
        }
 
        @Override public void reshape(GLAutoDrawable gLDrawable, int x, int y, int width, int height) {
                GL2 gl = gLDrawable.getGL().getGL2();
                final float aspect = (float) width / (float) height;
                gl.glMatrixMode(GLMatrixFunc.GL_PROJECTION);
                gl.glLoadIdentity();
                final float fh = 0.5f;
                final float fw = fh * aspect;
                gl.glFrustumf(-fw, fw, -fh, fh, 1.0f, 1000.0f);
                gl.glMatrixMode(GLMatrixFunc.GL_MODELVIEW);
                gl.glLoadIdentity();
        }
 
        @Override public void dispose(GLAutoDrawable gLDrawable) {}
 
        public static void main(String[] args) {
                GLCapabilities caps = new GLCapabilities(null);
                JOGLRenderEngine app = new JOGLRenderEngine();
                JFrame frame = new JFrame("JOGL Render Engine v0.0.5");
                GLJPanel panel = new GLJPanel(caps);
                panel.addGLEventListener(app);
                panel.setSize(1920, 1080);
                panel.setPreferredSize(new Dimension(1920, 1080));
                Animator animator = new Animator(panel);
                frame.setContentPane(panel);
                frame.setResizable(false);
                frame.pack();
                frame.setVisible(true);
                animator.start();
                panel.requestFocus();
        }
       
}