【问题标题】:OpenGL rendering on Android and PC?Android和PC上的OpenGL渲染?
【发布时间】:2012-09-21 13:07:38
【问题描述】:

我正在尝试制作某种可在 PC 和 Android 上使用的 OpenGL 包装器。

我的方法是创建一个包含所有 OpenGL 函数的抽象 OpenGL 类,然后为每个平台使用一个专门的类扩展该类。但是,在 Android 上似乎没有办法做到这一点,因为您需要一个只能从 onDrawFrame() 等函数中获取的 GL10 对象。您无法保存该 GL10 对象并在我扩展抽象 OpenGL 的 Android GL 类中使用它。如果我尝试,将不会呈现任何内容,我不知道为什么。

那么有什么解决方法吗?如果在 Android GL 类中调用 OpenGL 函数,我需要有某种方法来执行渲染器类中 onDrawFrame() 中的所有调用。

【问题讨论】:

  • 您需要以一种所有实际 OpenGL 调用都在特定于平台的子类中完成的方式进行抽象。例如,创建一个抽象的blit 方法,PC 子类使用诸如glBindTexture 的调用,Android 子类使用gl.glBindTexture,将GL10 对象gl 作为子类变量,您将其设置为每个画框()。可以毫无问题地完成,只是你会有相当多的冗余代码。

标签: opengl opengl-es cross-platform


【解决方案1】:

如果您需要在 PC 和 Android 设备上运行 OpenGL 应用程序,您可以考虑使用 libgdx 引擎。这比创建自己的包装器更合理。

【讨论】:

  • +1 libgdx,我以前用过这个,效果很好。您还可以将其部署为 Web 浏览器中的 Java 小程序。
  • 是的,我猜是这样。我不喜欢他们如何称呼它为游戏引擎。
【解决方案2】:

jPCT 是另一个不错的选择。基于 Java 并支持 PC 和 Android。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多