我正在编写一个包含OpenGL ES中绘制的图形的应用程序。这些图表中的每一个都在表格单元格中,当我按下其中一些图表时,它将以全屏模式打开。 自升级到iOS4.2以来,一切都运行良好。 现在的问题是在模拟器中,我无法在单元格中看到绘制的图形,但在全屏模式下我确实看到了图表。没有任何更改没有设备,它只在模拟器上只有在一个案例中。 其他Mac的行为与此相同。
有没有人有线索?
答案 0 :(得分:2)
正如this answer到this similar question中所解释的那样,4.2处理Core Animation层中的渲染缓冲区的方式发生了变化。来自OpenGL ES Programming Guide:
在iOS 4.2及更高版本中,性能 核心动画旋转 渲染缓冲区已经显着 改进了,现在是首选 方式之间旋转内容 风景和肖像模式。为了最好 性能,确保渲染缓冲区 高度和宽度均为倍数 32像素。
看起来如果你的渲染缓冲区不是32像素的偶数倍,它就不会在模拟器中显示。这是模拟器中的一个错误,但在任何情况下,您都应该使渲染缓冲区在任一维度上都是32的倍数,以提高性能。
答案 1 :(得分:1)
与我的应用程序相同。我的纹理在模拟器上偶尔被破坏(4.2)。在硬件上一切都很好。
答案 2 :(得分:0)
我不知道这是否有多大帮助,但我在OpenGL ES的模拟器实现上看到了各种奇怪的行为:出现虚假图像;第一次渲染过程中的奇怪照明;破坏渲染到位图,取决于我何时调用它。我不是OpenGL编程方面的专家,所以我可以编写垃圾代码,但模拟器与真实硬件的行为肯定存在显着差异。
你的经验表明,也许我的问题不完全是我的错。 : - )