ios 8 opengl es 1.1终止了?

我们即将在iOS appstore上发布一个标题,最近我们发现它不适用于iOS 8.游戏加载到黑屏,但是其他所有工具都可以正常工作(音乐可以被听到,它反应到触摸屏,只是没有在显示屏上)。

我们的引擎很老,使用OpenGL ES 1.1。 我现在确信这是个问题,因为我尝试了一个渲染黑屏的(老)教程。

我已经在网上寻找任何关于这个的讨论,但似乎无法find任何东西。 有没有人有任何1.1的应用程序,他们可以确认已经停止工作,或做工?

我现在正在考虑将引擎更新到2.0,这是考虑到项目规模的不小的成就,而且我们很快就会推出。 苹果没有任何意见就放弃对1.1的支持是没有意义的,所以我希望我错了。

我有同样的问题。 解决的办法是 – 不要添加子视图

 //[self.window addSubview:glView]; // this produces black screen on ios8 devices [self setView: glView]; 

关于ios8的另一个诀窍是对于一个景观应用这个代码

 const CGRect r = [[UIScreen mainScreen] bounds]; 

返回横向屏幕大小。 对于iOS <8,它总是肖像屏幕的大小。 所以现在我使用max(x,y)作为X,min(x,y)作为Y.

好的,我已经取得了一些进展。 在回答我的问题时,OpenGL ES 1.1不会停止。

我不知道自iOS 8以来发生了什么变化,但是肯定有些代码不再适用。 我已经设法取得了一些进展,通过一个教程取代我的主要应用程序委托和GL Viewcontroller,现在它正在渲染,尽pipe在屏幕上的一半,并倾斜。

所以要确认,1.1是好的,这是我的代码问题。

我通过将CGFloats更改为GLfloats(这包括CGPoints,因为它们使用CGFloats)来解决此处类似的问题。这与OpenGLES 1.1或2.0无关,因为我在这两者中都遇到同样的问题。

问题在于OpenGL是CGfloats是32位设备上的浮点types定义,而它们是64位设备上double的typedef。 GLfloats正是为了解决这个问题而提供的。 GLKVector2也是由苹果提供的,以解决32位和64位设备之间的这个问题。