代码之家  ›  专栏  ›  技术社区  ›  Ben Zotto sberry

EagleContext、EagleShareGroups、RenderBuffers、帧缓冲区,噢,天哪!

  •  3
  • Ben Zotto sberry  · 技术社区  · 14 年前

    我正试着在iPhone操作系统上围绕OpenGL对象模型。我现在正在渲染一些不同的 UIView CAEAGLayer s) 在屏幕上。我现在每个都使用单独的 EAGLContext ,每个都有一个颜色渲染缓冲区和一个帧缓冲区。

    我目前的理解是,我可以使用相同的设置(一些上下文,每个上下文都有一个FBO/RBO),但是如果我使用 EAGLShareGroup

    如果是这样的话,我想接下来的问题是:成为一个“共享组”有什么好处?我是否可以重用相同的上下文,并将多个FBO/RBO附加到该上下文?我想我正在与sharegroup的抽象层斗争,它似乎共享“对象”(纹理和其他命名的东西),但不共享上下文所拥有的“状态”(矩阵、启用/禁用状态)。

    最好的办法是什么?

    1 回复  |  直到 14 年前
        1
  •  4
  •   Pivot    14 年前

    这是正确的当两个 EAGLContext 使用相同的 EAGLSharegroup ,它们共享缓冲区对象、纹理、渲染缓冲区和帧缓冲区的相同视图。如果您的上下文使用的是opengles2.0,那么它们也会共享着色器和程序对象。

    对于使用同一共享组的多个上下文来说,最大的用例之一就是在呈现时能够从另一个线程异步加载资源。这看起来不像你在这里所做的,持久的上下文状态对你来说也不是一个问题,所以你最好还是保持一个单一的上下文状态 EAGLContext公司

    推荐文章