我有一个在 iPad 上运行的应用程序,它使用大量纹理,渲染到一个 EAGLView 中。现在我需要第二个 EAGLView,与第一个共享纹理。
通过修复 Apple 代码中的一些设计错误(例如,默认 ViewController 需要一些调整以支持多个子 EAGLView 对象),我可以让两个视图在屏幕上并行渲染得很好。但我无法共享纹理。
我无法复制纹理(这会使内存使用量翻倍——而且我们已经使用了大部分内存)。
我找不到任何来自 Apple 的关于如何在多个 EAGLView 之间共享纹理的文档 - 有“提示”表明这就是 EAGLShareGroup 的用途,允许每个 GLView 拥有自己的上下文,但两个上下文共享一个 ShareGroup - 但是我找不到任何明确的东西。
我试过按照这个问题的答案:Textures not drawing if multiple EAGLViews are used
...但这并不是真正的答案。它指向 EAGLSharegroup 而没有实际解释如何使用它——它似乎根本没有区别。它还间接指向一个关于从多个线程渲染的页面——这是一个完全不同的问题,我没有在那里列出的任何问题(应用程序崩溃等)。