gpt4 book ai didi

ios - 多个 EAGLViews 但每个纹理只有一个副本 - 怎么样?

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:14:19 26 4
gpt4 key购买 nike

我有一个在 iPad 上运行的应用程序,它使用大量纹理,渲染到一个 EAGLView 中。现在我需要第二个 EAGLView,与第一个共享纹理。

通过修复 Apple 代码中的一些设计错误(例如,默认的 ViewController 需要一些调整以支持多个子 EAGLView 对象),我可以在屏幕上并行地很好地呈现两个 View 。但是我无法共享纹理。

我无法复制纹理(那会使内存使用量加倍 - 而我们已经使用了大部分内存)。

我无法从 Apple 找到任何关于如何在多个 EAGLView 之间共享纹理的文档 - 有“提示”表明这就是 EAGLShareGroup 的用途,允许每个 GLView 有自己的上下文,但两个上下文共享一个ShareGroup - 但我找不到任何明确的内容。

我试过按照这个问题的答案:Textures not drawing if multiple EAGLViews are used

...但这并不是真正的答案。它指向 EAGLSharegroup 而没有实际解释如何使用它 - 它似乎没有任何区别。它还间接指向一个关于从多线程渲染的页面——这是一个完全不同的问题,我没有在那里列出任何问题(应用程序崩溃等)。

最佳答案

有两个选项,使用与第一个共享组相同的共享组创建第二个上下文为此使用 Adam 的第二个代码示例。

或者,您可以为两个 View 使用相同的上下文。为此,您可能应该让 ViewController 拥有上下文。然后,当您想要使用上下文渲染到特定 View 时,您可以在该 View 的帧缓冲区对象上调用 glBindFramebuffer(),并在特定于 View 的颜色缓冲区上调用 -presentRenderbuffer。这种情况可能比使用两个共享上下文更有效。

关于ios - 多个 EAGLViews 但每个纹理只有一个副本 - 怎么样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7547603/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com