我想在Eclipse RCP应用程序中使用LWJGL,但要么使用http://lwjgl.org/update中的插件,要么手动将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,OS: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
我在启动配置的VM参数中有-Dorg.lwjgl.librarypath = / Users / thsoft / Development / MRP / org.lwjgl / native / macosx。
(我可以在普通的Java项目中使用LWJGL而不会出现问题,只有在插件项目的情况下才会出现问题。我在OS X 10.7.2上。)
有没有人成功使用LWJGL创建RCP应用程序?
答案 0 :(得分:1)
GEF3D使用LWJGL并在OSX上工作 - 所以理论上可以这样做。我会看一下lwjgl特定的渲染器代码 - 请参阅http://wiki.eclipse.org/GEF3D_Installation#Install_a_Renderer了解一些细节。
可悲的是,GEF3D的文档很少,但可能是一个开始。
答案 1 :(得分:0)
这不是类路径问题,而是在SWT应用程序的上下文中错误地使用OpenGL。 我使用的是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();
正确用法的示例描述为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(); }