Re: freeze on macos Sonoma
Posted by SiboVG on Nov 19, 2023; 11:44pm
URL: https://forum.jogamp.org/freeze-on-macos-Sonoma-tp4043021p4043146.html
You're very welcome, thank you for aiding me!
I must admit I did not know about the animator, so I hope I implemented it correctly in the following code:
```
import com.jogamp.opengl.GLAutoDrawable;
import com.jogamp.opengl.GLCapabilities;
import com.jogamp.opengl.GLEventListener;
import com.jogamp.opengl.GLProfile;
import com.jogamp.opengl.awt.GLCanvas;
import com.jogamp.opengl.util.FPSAnimator;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Rectangle;
public class Test3D {
public static void main(String[] args) {
JFrame frame = new JFrame();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
frame.setVisible(true);
}
});
PhotoFrame pa = new PhotoFrame();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
pa.setVisible(true);
}
});
}
private static class PhotoFrame extends JFrame {
public PhotoFrame() {
PhotoPanel photoPanel = new PhotoPanel();
setContentPane(photoPanel);
}
}
private static class PhotoPanel extends JPanel implements GLEventListener {
private FPSAnimator animator;
PhotoPanel() {
this.setLayout(new BorderLayout());
initGLCanvas();
}
private void initGLCanvas() {
Component canvas;
try {
final GLProfile glp = GLProfile.get(GLProfile.GL2);
final GLCapabilities caps = new GLCapabilities(glp);
canvas = new GLCanvas(caps); // NOTE: using GLJPanel did not work either
this.add(canvas, BorderLayout.CENTER);
animator = new FPSAnimator((GLAutoDrawable) canvas, 60);
animator.start();
} catch (Throwable t) {
this.add(new JLabel("Unable to load 3d Libraries: " + t.getMessage()));
}
}
@Override
public void paintImmediately(Rectangle r) { }
@Override
public void paintImmediately(int x, int y, int w, int h) { }
@Override
public void display(final GLAutoDrawable drawable) { }
@Override
public void init(final GLAutoDrawable drawable) { }
@Override
public void dispose(GLAutoDrawable glAutoDrawable) { }
@Override
public void reshape(GLAutoDrawable glAutoDrawable, int i, int i1, int i2, int i3) { }
}
}
```
This code produces the same bug.