如何在 Eclipse (RCP) 应用程序中使用 LWJGL?

发布于 2024-12-20 11:55:35 字数 732 浏览 0 评论 0原文

我想在 Eclipse RCP 应用程序中使用 LWJGL,但要么使用 http://lwjgl.org/update< 中的插件/a> 或手动将 jar 放入类路径中并添加 Bundle-NativeCode 条目,我的应用程序在记录后在启动时挂起:

!ENTRY org.lwjgl 1 1 2011-12-11 00:27:11.122 !MESSAGE 将 org.lwjgl.librarypath 设置为 /Users/thsoft/Development/workspace/org.lwjgl/native/macosx,操作系统:mac os x(x86_64) 2011-12-11 00:27:11.144 java[43495:407] [Java CocoaComponent 兼容模式]: 启用 2011-12-11 00:27:11.145 java[43495:407] [Java CocoaComponent 兼容模式]:将 SWT 超时设置为 0.100000

我确实有 -Dorg.lwjgl.librarypath=/Users/thsoft/Development/MRP/org。启动配置的 VM 参数中的 lwjgl/native/macosx。

(我可以在普通的Java项目中使用LWJGL,没有问题,问题只发生在插件项目的情况下。我使用的是OS X 10.7.2。)

有人成功使用LWJGL创建RCP应用程序吗?

I want to use LWJGL in an Eclipse RCP application, but either using the plug-in from http://lwjgl.org/update or manually placing the jars in the classpath and adding Bundle-NativeCode entries, my application hangs at startup after having logged:

!ENTRY org.lwjgl 1 1 2011-12-11 00:27:11.122
!MESSAGE Set org.lwjgl.librarypath to /Users/thsoft/Development/workspace/org.lwjgl/native/macosx, OS: mac os x(x86_64)
2011-12-11 00:27:11.144 java[43495:407] [Java CocoaComponent compatibility mode]: Enabled
2011-12-11 00:27:11.145 java[43495:407] [Java CocoaComponent compatibility mode]: Setting timeout for SWT to 0.100000

I do have -Dorg.lwjgl.librarypath=/Users/thsoft/Development/MRP/org.lwjgl/native/macosx among the VM arguments of the launch configuration.

(I can use LWJGL in a plain Java project without problem, the issue occurs only in the case of a plug-in project. I'm on OS X 10.7.2.)

Has anyone succeeded to create an RCP application using LWJGL?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

五里雾 2024-12-27 11:55:35

GEF3D 使用 LWJGL 并在 OSX 上运行 - 所以理论上是可以做到的。我会查看特定于 lwjgl 的渲染器代码 - 请参阅 http://wiki.eclipse.org/GEF3D_Installation#Install_a_Renderer 了解一些小细节。

遗憾的是,GEF3D 的文档很少,但这也许是一个开始。

GEF3D uses LWJGL and works on OSX - so in theory it is possible to do it. I would look at the lwjgl-specific renderer code - see http://wiki.eclipse.org/GEF3D_Installation#Install_a_Renderer for some minor details.

Sadly, documentation for GEF3D is sparse, but maybe its a start.

黒涩兲箜 2024-12-27 11:55:35

这不是类路径问题,而是在 SWT 应用程序上下文中错误使用 OpenGL。
我使用的是此处中的示例代码:

try {
    Display.setDisplayMode(new DisplayMode(800,600));
    Display.create();
} catch (LWJGLException e) {
    e.printStackTrace();
    System.exit(0);
}

// init OpenGL here

while (!Display.isCloseRequested()) {

    // render OpenGL here

    Display.update();
}

Display.destroy();

描述了正确用法的示例此处

    final Display display = new Display();
    Shell shell = new Shell(display);
    shell.setLayout(new FillLayout());
    Composite comp = new Composite(shell, SWT.NONE);
    comp.setLayout(new FillLayout());
    GLData data = new GLData ();
    data.doubleBuffer = true;
    final GLCanvas canvas = new GLCanvas(comp, SWT.NONE, data);

    canvas.setCurrent();
    try {
        GLContext.useContext(canvas);
    } catch(LWJGLException e) { e.printStackTrace(); }

It wasn't a classpath issue, but the incorrect usage of OpenGL in the context of an SWT application.
I was using the example code from here:

try {
    Display.setDisplayMode(new DisplayMode(800,600));
    Display.create();
} catch (LWJGLException e) {
    e.printStackTrace();
    System.exit(0);
}

// init OpenGL here

while (!Display.isCloseRequested()) {

    // render OpenGL here

    Display.update();
}

Display.destroy();

An example of the correct usage is described here:

    final Display display = new Display();
    Shell shell = new Shell(display);
    shell.setLayout(new FillLayout());
    Composite comp = new Composite(shell, SWT.NONE);
    comp.setLayout(new FillLayout());
    GLData data = new GLData ();
    data.doubleBuffer = true;
    final GLCanvas canvas = new GLCanvas(comp, SWT.NONE, data);

    canvas.setCurrent();
    try {
        GLContext.useContext(canvas);
    } catch(LWJGLException e) { e.printStackTrace(); }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文