gpt4 book ai didi

iphone - 如果使用多个 EAGLView,则纹理不会绘制

转载 作者:搜寻专家 更新时间:2023-10-30 19:48:51 25 4
gpt4 key购买 nike

我在使用 Apple 的 EAGLView 和 Texture2D 时遇到了一些问题。如果我创建一个 EAGLView 实例并绘制一些纹理,效果会很好。但是,每当我创建 EAGLView 的第二个实例时,都不会绘制新 View 中的纹理。
作为 OpenGL 的新手,我现在完全知道是什么导致了这种行为。如果有人愿意提供帮助,我已经创建了一个重现该行为的小项目。该项目可以在 http://www.cocoabeans.se/OpenGLESBug.zip 找到。

非常感谢,
蒂姆·安德森

更新
我尝试使用共享组,但不确定是否正确使用了它们。但是,它确实稍微改变了行为;它不再只在第一个实例化 View 中绘制纹理,而是在最后 实例化 View 中绘制纹理,并在其他 View 中绘制白色矩形。我不知道这是好是坏,但至少 一些东西 现在出现在其他 View 中。
这让我发疯,如果有人能帮助我解决这个问题,我将不胜感激。我已经在 http://www.cocoabeans.se/OpenGLESBug.zip 更新了项目以反射(reflect)变化。

干杯,
蒂姆

第二次更新
在尝试了更多东西之后,问题似乎与 Apple 的 Texture2D 类有关,但我不确定到底是什么导致了这种行为。我认为最好的办法是编写我自己的纹理类(它将帮助我理解 OpenGL 如何处理纹理,这可能会派上用场)。

最佳答案

(尚未下载您的代码。)

如果您只使用两个 EAGLView,则 OpenGL 绘图上下文是不同的(该基类中的代码创建并拥有 GL 上下文以及渲染/帧/深度缓冲区)。如果您在一个上下文中生成/绑定(bind)某些纹理,则它们在另一个上下文中将不可用。如果您喜欢使用共享组,则可以共享上下文(有关更多信息,请参阅此问题:How to use OpenGL ES on a separate thread on iphone?)。或者在这两个地方定义纹理(如果小的话)等。

关于iphone - 如果使用多个 EAGLView,则纹理不会绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2275656/

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