为什么我的EAGLVIew在iOS 4.2中不再呈现?
题
升级到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示例应用程序时,在此处和
也许您可以将这些示例中使用的初始化与自己的初始化进行比较,看看在设置过程中是否可能缺少某些东西。