JOGL - не рабочие цвета - PullRequest
0 голосов
/ 11 марта 2012

Я только начал изучать JOGL и есть одна проблема.

Ниже приведена простая реализация двух методов GLEventListener .

@Override
public void init(GLDrawable glDrawable) {

    GL gl = glDrawable.getGL();
    GLU glu = glDrawable.getGLU();

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

    glu.gluOrtho2D(0.0, 600.0, 0.0, 500.0);

}

@Override
public void display(GLDrawable glDrawable) {

    GL gl = glDrawable.getGL();
    gl.glPointSize(100.0f);

    gl.glColor3f(0.0f, 1.0f, 0.0f);
    gl.glBegin(GL.GL_POINTS);
    gl.glVertex2i(300, 250);
    gl.glEnd();

    gl.glEnd();

}

Вот так я вставляю компонент в окно JFrame.

package scribble;

import net.java.games.jogl.GLCanvas;
import net.java.games.jogl.GLCapabilities;
import net.java.games.jogl.GLDrawableFactory;
import javax.swing.*;
import java.awt.*;

public class ScribbleComponent extends JFrame {

    public static void main(String[] args) {
        ScribbleComponent component = new ScribbleComponent();
        ScribbleRunnable runnable = new ScribbleRunnable(component);
        SwingUtilities.invokeLater(runnable);
    }

    public ScribbleComponent() {
        super("Scribble");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        GLCapabilities glCapabilities = new GLCapabilities();
        GLCanvas glCanvas = GLDrawableFactory.getFactory().createGLCanvas(glCapabilities);
        glCanvas.addGLEventListener(new ScribbleListener());
        getContentPane().add(glCanvas, BorderLayout.CENTER);
        getContentPane().add(new JButton("Clear Screen"), BorderLayout.SOUTH);
        setSize(600, 500);
        ScribbleHelper.centerWindow(this);
    }

}

ScribbleRunnable (component) делает компонент видимым.

ScribbleHelper.centerWindow (this) просто центрирование окна JFrame.

Я ожидаю увидеть зеленый квадрат на белом фоне.

На первом компьютере он работает правильно, но на втором я получаю темно-красный квадратна черном фонеЭто происходит всегда, я не могу установить другие цвета.

Оба компьютера работают под управлением Windows 7, используют JDK 1.6 и те же библиотеки.

В чем может быть проблема?

1 Ответ

0 голосов
/ 22 мая 2012

Вы должны реализовать com.jogamp.opengl.util.FPSAnimator для постоянного обновления метода display ().Тогда взгляните на это.

Также используйте gl.glClear (GL2.GL_COLOR_BUFFER_BIT | GL2.GL_DEPTH_BUFFER_BIT);держать вас в чистоте.

...