Posted by
mikaelhc on
URL: https://forum.jogamp.org/JOGL-errors-on-Intel-HD-Graphics-Ubuntu-12-10-tp4028974.html
Hi,
I am encountering some very weird behavior on some Linux systems.
I've have been working on an application which works on Windows and Mac. But on Linux it only works on some setups, such as Nvidia's GPU with proprietary drivers.
On my Linux test system (Ubuntu 12.10) with Intel HD graphics, I'm not able to draw anything. I'm able to set the background color, but whenever I try to render something, I get errors.
This behavior can be reproduced using this simple program:
package com.clcbio.api.structure.viewer.mockup;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.media.opengl.DebugGL2;
import javax.media.opengl.GL;
import javax.media.opengl.GL2;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCapabilities;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.GLProfile;
import javax.media.opengl.awt.GLCanvas;
public class JoglTest implements GLEventListener {
static GLProfile glp;
private float theta;
private float s;
private float c;
static {
glp = GLProfile.getDefault();
}
public static void main(String[] args) {
GLCapabilities caps = new GLCapabilities(glp);
GLCanvas canvas = new GLCanvas(caps);
// GLJPanel canvas = new GLJPanel(caps);
Frame frame = new Frame("AWT Window Test");
frame.setSize(300, 300);
frame.add(canvas);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
canvas.addGLEventListener(new JoglTest());
// FPSAnimator animator = new FPSAnimator(canvas, 60);
// animator.add(canvas);
// animator.start();
}
@Override
public void display(GLAutoDrawable drawable) {
render(drawable);
}
@Override
public void dispose(GLAutoDrawable drawable) {
}
@Override
public void init(GLAutoDrawable drawable) {
}
@Override
public void reshape(GLAutoDrawable drawable, int x, int y, int w, int h) {
}
private void render(GLAutoDrawable drawable) {
GL2 gl = drawable.getGL().getGL2();
drawable.setGL(new DebugGL2(gl));
gl.glClearColor(1.0f, 0.0f, 1.0f, 1.0f);
gl.glClear(GL.GL_COLOR_BUFFER_BIT);
gl.glBegin(GL.GL_TRIANGLES);
gl.glColor3f(1, 0, 0);
gl.glVertex3f(-c, -c, 0);
gl.glColor3f(0, 1, 0);
gl.glVertex3f(0, c, 0);
gl.glColor3f(0, 0, 1);
gl.glVertex3f(s, -s, 0);
gl.glEnd();
theta += 0.1;
s = (float) Math.sin(theta);
c = (float) Math.cos(theta);
}
}
I've attached the debug information I get when running the program:
http://pastebin.com/Q24SmAcqIt should be said, that I'm able to run other OpenGL 3D applications on this system.
Any help would be greatly appreciated!
Regards,
Mikael.