我的应用程序有一些不同的OpenGL上下文,都使用相同的着色器集。目前,它会多次重新编译,链接等着色器,每次上下文一次。我试图加快速度,并遇到了EAGLSharegroup。
documentation for EAGLSharegroup说“当前,共享组管理纹理,缓冲区,帧缓冲区和渲染缓冲区。”,但没有提及有关着色器和程序对象的任何内容。我不确定文档是否过时,或者共享这些对象是行不通的。
根据this question的答案,它确实有效,但我找不到其他任何东西来支持它。
我已经尝试过,它似乎可以在模拟器上运行(尚未在真实设备上试过)。我是否经历过侥幸,或者我能依靠这种行为吗?我希望能够依赖它,但找不到任何我能说的官方文档。
答案 0 :(得分:2)
我没有任何iExperience,但如果上下文共享在桌面GL(我假设)中工作,则应共享每个资源,包括着色器。
答案 1 :(得分:1)
它对我有用。我在单独的线程上编译和链接我的着色器程序,具有单独的上下文。此单独的上下文使用与主要上下文相同的共享组。着色器使用此主要上下文在我的主线程上正常工作。