为什么不能编译在后台线程着色器?

问题描述 投票:1回答:1

我一直在寻找的代码和开发视频学习的OpenGL ES 2.0 / GLSL以及相关的iOS怪癖,我已经注意到,从未有异步着色器编译的任何提及。除了教师,作家,推销员或(呃,工程师)担心增加复杂的例子,有一个理由?

例如,大多数的网络数据检索教程锤家需要做某种体操(并行线程,的NSOperation,GCD,在非同步实例方法,烘烤等),以阻塞主thread-保持为什么会阻止应用程序启动被认为是可接受?

ios glsl opengl-es-2.0
1个回答
1
投票

它可以是棘手的一点点同步两个EAGLContext的,那旁边,是没有对装载这种东西在后台(通常,加载每一种资产,纹理,着色器等)。

也许真正的原因是,大多数人认为的OpenGL(ES)的东西作为整体,仅适用于一个单一的线或他们从未有过的加载时间,使得它值得加载的东西在后台线程或者他们只是做不成问题关心(对某些人来说它可能是一切融合在一起)。

为了您的最后一个问题:网络可以添加一个巨大的潜伏期,以“可以”我的意思是“会”。资源装载是不是有问题,相比于网络接入,装载着色器或纹理的方式需要较少的时间和它的已知未来将花费多少时间在正常情况下。此外,人们习惯在游戏载入画面,而他们不希望看到的载入画面,当他们滚动表视图只是让你的应用程序能够从没有响应的服务器获取的图片。

© www.soinside.com 2019 - 2024. All rights reserved.