【问题标题】:EAGLSharegroup like functionality for cross platform developement in c++ openGLEAGLEShare 类似 c++ openGL 中跨平台开发的功能
【发布时间】:2013-10-24 19:41:59
【问题描述】:

我正在尝试在跨平台 cocos2d-x 游戏中使用 GPUImage 库的 c++ 端口。 GPUImage 和 cocos2d-x 都创建了自己的 OpenGL 上下文来在 GPU 上执行操作,这会导致应用程序出现问题。对于为 iOS 创建的原始 GPUImage 库,作者建议使用 'sharegroup' 来共享 GPUImage 和 cocos2d here 之间的上下文。 Apple docs here 中也给出了“sharegroup”的使用。因为,我想制作一个跨平台游戏(适用于安卓和 iOS),所以我一直在寻找其他平台(如安卓)上的相同功能?可以跨平台实现吗?

【问题讨论】:

    标签: android opengl-es cross-platform cocos2d-x gpuimage


    【解决方案1】:

    像这个答案中建议的那样做呢:https://stackoverflow.com/a/7892531/369009

    Android 提供 EGL,它支持 OpenGL 的通用概念 共享组(虽然是隐式的;您提供一个现有的上下文 你希望一个新的上下文通过第三个在一个公共组中 eglCreateContext 的参数)。如果两个上下文在一个共享组中 那么他们每个人都有一个独立的状态并且可以安全地调用 只有一个线程,但命名对象,如纹理或顶点缓冲区 他们每个人都可以使用对象。因此,您可以使用共享组 同时在多个线程上执行 OpenGL 动作,以便 能够在单个线程上组合结果。

    这行得通吗?我想这将是相当跨平台的(只要支持 EGL),但是您必须以某种方式同步对共享对象(纹理,...)的访问。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-07
      • 1970-01-01
      • 2010-11-29
      • 1970-01-01
      • 2017-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多