eclipse中java.library.path中没有jogl

时间:2015-09-06 15:42:34

标签: eclipse jogl

CGUsingJava2d3d中的简单示例代码,我有

的问题
GLCanvas canvas = GLDrawableFactory.getFactory().createGLCanvas(cap);

我添加了jar文件jogl-alljogl_old和参数-Djava.library.path=----以链接jogl的dll文件。

而且,这些文件来自

http://jogamp.org/wiki/index.php/Downloading_and_installing_JOGL

(来自\ jogamp-all-platforms \ lib \ windows-amd64的dll文件)

这是源代码....以防万一。

package chapter1;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import net.java.games.jogl.*;

public class JOGLDemo {

  public static void main(String[] args) {
    Frame frame = new Frame("JOGL Demo");
    GLCapabilities cap = new GLCapabilities();
    GLCanvas canvas = GLDrawableFactory.getFactory().createGLCanvas(cap);
    canvas.setSize(300, 300);
    canvas.addGLEventListener(new Renderer());
    frame.add(canvas);
    frame.pack();
    frame.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        System.exit(0);
      }
    });
    frame.show();
  }

  static class Renderer implements GLEventListener {
    private GL gl;
    private GLU glu;
    private GLDrawable gldrawable;

    public void init(GLDrawable drawable) {
      gl = drawable.getGL();
      glu = drawable.getGLU();
      this.gldrawable = drawable;
      gl.glMatrixMode(GL.GL_PROJECTION);
      gl.glLoadIdentity();
      glu.gluOrtho2D(-1.2, 1.2, -1.2, 1.2);
      gl.glClearColor(1.0f, 1.0f, 1.0f, 0.0f);
    }    

    public void display(GLDrawable drawable) {
      int i;
      int n = 80;
      float a = (float)(2*3.1415926535/n);
      float x;
      float y;

      gl.glClear(GL.GL_COLOR_BUFFER_BIT);
      gl.glColor3f(1.0f,0,0);
      gl.glBegin(GL.GL_LINE_LOOP);
      for (i = 0; i < n; i++) {
        x = (float)Math.cos(i*a);
        y = (float)Math.sin(i*a);
        gl.glVertex2f(x, y);
      }
      gl.glEnd();
      gl.glFlush();
    }

    public void reshape(GLDrawable drawable, int x, int y, int width,
      int height) {}
    public void displayChanged(GLDrawable drawable, boolean modeChanged,
      boolean deviceChanged) {}
  }
}

请告诉我我还需要做些什么或检查一下......

祝你有个美好的一天。感谢。

1 个答案:

答案 0 :(得分:1)

您的代码没有机会工作,它使用旧版本的JOGL 1.使用com.jogamp.opengl代替我们的文档。

我同意选举的评论。