Hallo
Ich beschreib' mein Problem mal so:
Ich hab' ABSOLUT keine ahnung warum ich nichts z > 1 anzeigen kann!
Zum anzeigen benutze ich LWJGL.
Das AWTGLCanvas wird einem Fenster hinzugefügt und angezeigt.
Jede 1/60 sekunde wird
aufgerufen
Hier der Code für das AWTGLCanvas:
Ich beschreib' mein Problem mal so:
Ich hab' ABSOLUT keine ahnung warum ich nichts z > 1 anzeigen kann!
Zum anzeigen benutze ich LWJGL.
Das AWTGLCanvas wird einem Fenster hinzugefügt und angezeigt.
Jede 1/60 sekunde wird
Code:
Canvas3D.repaint()
Hier der Code für das AWTGLCanvas:
Java:
public class Canvas3D extends AWTGLCanvas implements Renderer {
private static final long serialVersionUID = 1L;
private List<DrawInfo> infos;
private List<Renderer> subRenderers;
private boolean inited;
public Canvas3D() throws LWJGLException {
super();
infos = new LinkedList<DrawInfo>();
subRenderers = new LinkedList<Renderer>();
}
public void init() {
createBufferStrategy(1);
try {
makeCurrent();
} catch (LWJGLException e) {
e.printStackTrace();
return;
}
GL11.glShadeModel(GL11.GL_SMOOTH);
GL11.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
GL11.glClearDepth(1.0f);
GL11.glEnable(GL11.GL_DEPTH_TEST);
GL11.glDepthFunc(GL11.GL_LEQUAL);
GL11.glHint(GL11.GL_PERSPECTIVE_CORRECTION_HINT, GL11.GL_NICEST);
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glOrtho(-2, 2, 2, -2, -1, 1);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
GL11.glLoadIdentity();
try {
releaseContext();
} catch (LWJGLException e) {
e.printStackTrace();
}
}
@Override
public DrawInfo get(int index) {
return infos.get(index);
}
@Override
public int add(DrawInfo di) {
infos.add(di);
return infos.size() - 1;
}
@Override
public int remove(DrawInfo di) {
int index = infos.indexOf(di);
if (index != -1)
infos.remove(index);
return index;
}
@Override
public void clear() {
infos.clear();
}
public int addSubRenderer(Renderer renderer) {
int index = subRenderers.indexOf(renderer);
if (index != -1)
return index;
subRenderers.add(renderer);
return subRenderers.size() - 1;
}
public Renderer removeSubRenderer(int index) {
return subRenderers.remove(index);
}
public int removeSubRenderer(Renderer renderer) {
int index = subRenderers.indexOf(renderer);
if (index != -1)
subRenderers.remove(index);
return index;
}
@Override
public void render() {
if (!inited) {
init();
inited = true;
}
try {
makeCurrent();
} catch (LWJGLException e1) {
e1.printStackTrace();
return;
}
GL11.glLoadIdentity();
GL11.glPushMatrix();
for (int i = 0; i < subRenderers.size(); i++)
subRenderers.get(i).render();
GL11.glPopMatrix();
GL11.glPushMatrix();
for (int i = 0; i < infos.size(); i++)
try {
infos.get(i).render();
} catch (NoSuchMethodException | IllegalArgumentException e) {
e.printStackTrace();
}
GL11.glPopMatrix();
try {
releaseContext();
} catch (LWJGLException e) {
e.printStackTrace();
}
}
@Override
public void paintGL() {
int max = Math.max(getWidth(), getHeight());
GL11.glViewport(0, 0, max, max);
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
GL11.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
render();
try {
makeCurrent();
swapBuffers();
} catch (LWJGLException e) {
e.printStackTrace();
}
}
}