代码之家  ›  专栏  ›  技术社区  ›  mik01aj

如何使jogl2.0与SWT一起工作?

  •  1
  • mik01aj  · 技术社区  · 14 年前

    我正在尝试让SWT与最新的JOGL(2.0)一起工作。

    我试过了 SWT snippet 209 ,但不起作用。问题是由以下线路引起的:

    final GLContext context = GLDrawableFactory.getFactory().createExternalGLContext();
    

    …但当我改变的时候 getFactory() getFactory(GLProfile.getDefault()) (为了使它与新的API兼容),它在 createExternalGLContext() 具有 javax.media.opengl.GLException: Error: current context null . 我不理解这个消息:我试图创建一个新的上下文,它抱怨当前为空。为什么?

    也许还有别的方法可以创造一个 GLContext ?

    或者可以使用 GLEventListener GLCanvas ?

    另外,我把修改过的代码片段放在 here


    编辑:现在我明白错误信息了。 Documentation

    调用此方法时,当前线程上的基础OpenGL上下文必须是当前的。

    2 回复  |  直到 14 年前
        1
  •  2
  •   j flemm    14 年前

    简单方法:让渲染类实现 GLEventListener GLContext 创建代码到 .init(...) 回调(似乎是您发布的示例的正确位置)。然后把那个听众加进去 GLCanvas 或者像你正在使用的显示小部件。

    他们最近对JOGL进行了一次适当的清理,因此大多数示例在没有适当的处理的情况下甚至无法编译。如果您是新手,您可能希望在启动时回滚到具有更高代码示例兼容性的旧版本。

        2
  •  0
  •   Wade Walker    14 年前

    教程 http://wadeawalker.wordpress.com/2010/10/09/tutorial-a-cross-platform-workbench-program-using-java-opengl-and-eclipse/ 展示了如何做到这一点。我从JOGL2版本开始修改了swtsippet209 http://github.com/sgothel/jogl-demos/blob/master/src/demos/swt/Snippet209.java

    我的教程展示了如何将其作为eclipsercp应用程序(只使用SWT,不使用AWT桥)。作为一个独立的SWT应用程序,这里有一个教程 https://sites.google.com/site/justinscsstuff/jogl-tutorials