# JOGL nur weißes Fenster



## elfenblut (30. Apr 2010)

Hi! 
Ich versuche mich gerade in Jogl mit Eclipse(eingebunden wie in diesem Tutorial). Lasse ich unten stehende Demo aus einem Tutorial laufen, so erscheint aber statt dem schwarzen Fenster ein weißes. wenn ich nun das Fenster bisschen rumschiebe wird es hin und wieder schwarz, manchmal bleibt es sogar so.

Frage: Woran könnte das liegen? Das Programm funktioniert bei meinen Freunden, und Eclipse spuckt auch keine Fehler aus....

Ich habs an meinem Rechner probiert und an meinem Netbook (da kommen sogar so komische Würfel) beides Mal ohne Erfolg.

Netbook: Win XP, Grafikkarte: Mobil Inel 945 Express Chipset Family, JRE6
Rechner: Win Vista 32bit, Grafikkarte: ATI Radeon HD 4650, JRE6

Danke schonmal!

DEMO:

```
import java.awt.*;
import java.awt.event.*;
import javax.media.opengl.*;
import javax.media.opengl.glu.*;
import com.sun.opengl.util.*;
public class Beispiel_1 {
static class WinRenderer extends GLCanvas
implements GLEventListener
{
//GL und GLU zum Aufrufen der Graphikfunktionen
private GL gl;
private GLU glu;
//Konstruktor
public WinRenderer(){
super();
}
//Erstellen des Fensters
public void display(GLAutoDrawable gLDrawable){
//GL-Objekt holen
gl = gLDrawable.getGL();
//Buffer leeren
gl.glClear(gl.GL_COLOR_BUFFER_BIT);
//und ab geht die Post
gl.glFlush();
}
//nicht implementiert
public void displayChanged(GLAutoDrawable gLDrawable,
boolean modeChanged, boolean deviceChanged){}
//hier gibt es nichts zu initialisieren
public void init(GLAutoDrawable gLDrawable){}
//Auch das Ver¨andern des Fensters interessiert uns nicht
public void reshape(GLAutoDrawable gLDrawable, int x, int y,
int width, int height){}

}
public static void main(String[] args) {
//Frame mit Titel erzeugen
Frame frame = new Frame("Ein leeres Fenster");
//neuen WinRenderer erzeugen
WinRenderer canvas = new WinRenderer();
//zum Frame hinzuf¨ugen
frame.add(canvas);
//Gr¨oße setzen
frame.setSize(640, 480);
//und anzeigen
frame.show();
}
}
```


----------



## Guest2 (30. Apr 2010)

Moin,

da hängt kein Animator dran, darum werden die OpenGL Funktionen nicht / gar nicht aufgerufen. Dein Code sollte für JoGL1 ungefähr so aussehen:


```
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.media.opengl.GL;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCanvas;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.glu.GLU;

import com.sun.opengl.util.Animator;

public class Simple implements GLEventListener {

    private GL  gl  = null;
    private GLU glu = null;


    @Override
    public void init(final GLAutoDrawable drawable) {

        gl = drawable.getGL();
        glu = new GLU();

        gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

    }


    @Override
    public void display(final GLAutoDrawable drawable) {

        gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);

    }


    @Override
    public void reshape(final GLAutoDrawable drawable, final int x, final int y, final int width, int height) {

        if (height <= 0)
            height = 1;

        gl.glMatrixMode(GL.GL_PROJECTION);
        gl.glLoadIdentity();
        glu.gluPerspective(45.0f, (float) width / (float) height, 1.0, 20.0);
        gl.glMatrixMode(GL.GL_MODELVIEW);
        gl.glLoadIdentity();
    }


    @Override
    public void displayChanged(final GLAutoDrawable drawable, final boolean modeChanged, final boolean deviceChanged) {

    }


    public static void main(final String[] args) {

        final Simple simple = new Simple();
        final Frame frame = new Frame();
        final GLCanvas canvas = new GLCanvas();
        final Animator animator = new Animator(canvas);

        canvas.addGLEventListener(simple);
        frame.add(canvas);
        frame.setSize(500, 500);
        frame.addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosing(final WindowEvent e) {

                new Thread(new Runnable() {
                    public void run() {

                        animator.stop();
                        System.exit(0);

                    }

                }).start();
            }
        });

        frame.setVisible(true);
        animator.start();
    }

}
```

Gruß,
Fancy


----------



## elfenblut (30. Apr 2010)

Habs grad von nem Kumpel erfahren, trotzdem DANKE!


----------

