我可以在与EAGLSharegroup的上下文之间共享着色器吗?

时间:2011-08-09 05:51:38

标签: iphone ios opengl-es

我的应用程序有一些不同的OpenGL上下文,都使用相同的着色器集。目前,它会多次重新编译,链接等着色器,每次上下文一次。我试图加快速度,并遇到了EAGLSharegroup。

documentation for EAGLSharegroup说“当前,共享组管理纹理,缓冲区,帧缓冲区和渲染缓冲区。”,但没有提及有关着色器和程序对象的任何内容。我不确定文档是否过时,或者共享这些对象是行不通的。

根据this question的答案,它确实有效,但我找不到其他任何东西来支持它。

我已经尝试过,它似乎可以在模拟器上运行(尚未在真实设备上试过)。我是否经历过侥幸,或者我能依靠这种行为吗?我希望能够依赖它,但找不到任何我能说的官方文档。

2 个答案:

答案 0 :(得分:2)

我没有任何iExperience,但如果上下文共享在桌面GL(我假设)中工作,则应共享每个资源,包括着色器。

答案 1 :(得分:1)

它对我有用。我在单独的线程上编译和链接我的着色器程序,具有单独的上下文。此单独的上下文使用与主要上下文相同的共享组。着色器使用此主要上下文在我的主线程上正常工作。