升级到iOS SDK 4.2我在我的应用程序中遇到了一些错误行为(要求另一个错误此处)。我要向您寻求帮助的那个涉及一个OpenGL视图(一个EAGLView子类),该视图不再呈现我要放入的3D模型。

已分配视图,它看起来可以识别手势,但其内容不可见(我已经检查过它是否与视图有关,而不是视图的错位通过为背景着色来建立模型:它不会通过glClearColor()对其进行着色。

当我双击它时,它将调整大小(进入全屏显示,在此之前是一个很小的UIVIew),调用此方法: 通用标签

神奇地模型出现,甚至背景也变色了。

我有一个方法来调整它的大小并使其回到其先前的帧和中心位置,并且在调用它时,视图再次变为'empty'

之前 有什么建议吗? (如果需要,我可以发布更多代码)

更新 这是在模拟器上发生的(目前无法在设备上进行测试)。如果这是一个公认的错误,那么有人可以从Apple文档中获得参考吗?

更新2 我使用的是OpenGL ES 1.1,而不是2.0。

这就是我在EAGLView的layoutSubViews中所做的事情: 通用标签

这是我的基因密码 通用标签

更新3

如果我创建了一个全屏框架(320x480)的视图,则显示正确。在某种程度上,它与视图尺寸有关

有帮助吗?

解决方案

我花了很长时间才找到这个。完全没有很好的文档记录,但是在苹果文档中。在os 4.2及更高版本上,您需要EAGLview尺寸为两个尺寸的32像素的倍数才能正常工作。

其他提示

这是模拟器中的吗?如果是这样,则这是iOS 4.2模拟器中的一个已知错误。此错误不会影响设备本身。

如何设置OpenGL宿主层及其支持的视图?当我尝试OpenGL ES示例应用程序时,在此处此处,在4.2 Simulator和设备上都可以正常运行。

也许您可以将这些示例中使用的初始化与自己的初始化进行比较,看看在设置过程中是否可能缺少某些东西。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top