首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EAGLContext presentRenderbuffer在第二个线程上?

EAGLContext presentRenderbuffer在第二个线程上?
EN

Stack Overflow用户
提问于 2014-12-12 01:05:36
回答 2查看 1.2K关注 0票数 2

我正在将我的游戏引擎移植到iOS,并在我的EAGLContext presentRenderbuffer上运行一个例外: call。我的引擎在一个单独的线程上将所有代码呈现给主线程;该引擎的工作方式是在主线程上创建CAEAGLLayer和EAGLContext,激活上下文并为视图创建框架缓冲区,然后禁用上下文。之后,对于每个框架,我的呈现线程将激活上下文,绑定框架缓冲区,绘制,最后显示呈现缓冲区。

是否可以在次要线程上调用presentRenderbuffer:,或者这是导致我的问题的原因?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-21 11:15:22

看起来,这种行为肯定已经改变了,因为我能够在辅助线程上使用EAGLContext,而不会出现问题(在iOS8 7/iOS8 8上进行测试)。

票数 2
EN

Stack Overflow用户

发布于 2014-12-12 07:23:10

除非有一些不同之处,否则答案是否定的,除了主线程之外,您可能不会在任何线程上呈现呈现缓冲区。最接近的可能是在执行所有绘图的辅助线程上使用纹理绑定FBO,然后将纹理传递给主线程(需要共享上下文),然后只将纹理重绘到主线程呈现缓冲区。

另一种方法可能是使用三重缓冲,在绘制完成后,绘制线程将交换缓冲区1和2,主线程将交换缓冲区3和2。如果你试图实现这一点,请告诉我,因为我对结果很好奇。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27435302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档