为什么我在4.2模拟器中看不到某些OpenGL ES图表?

时间:2010-12-13 15:15:29

标签: iphone ios opengl-es ios-simulator

我正在编写一个包含OpenGL ES中绘制的图形的应用程序。这些图表中的每一个都在表格单元格中,当我按下其中一些图表时,它将以全屏模式打开。 自升级到iOS4.2以来,一切都运行良好。 现在的问题是在模拟器中,我无法在单元格中看到绘制的图形,但在全屏模式下我确实看到了图表。没有任何更改没有设备,它只在模拟器上只有在一个案例中。 其他Mac的行为与此相同。

有没有人有线索?

3 个答案:

答案 0 :(得分:2)

正如this answerthis 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编程方面的专家,所以我可以编写垃圾代码,但模拟器与真实硬件的行为肯定存在显着差异。

你的经验表明,也许我的问题不完全是我的错。 : - )