我的应用程序“Guess-A-Sketch”在ios 4.3中有绘图问题。我有一个显示黑色的gl绘图画布。奇怪的是我发现如果我稍微调整ogl视图的帧大小它似乎工作..我在appstore中的版本不起作用所以我必须做一个更新来修复..虽然它看起来像一个错误。其他人看到这个?很烦人!即使我的帧调整修复,当我在视图上进行动画变换时,视图会闪烁黑色,这在以前的ios版本中是平滑的
答案 0 :(得分:2)
您可能遇到this answer中提到的问题。在iOS 4.2中,处理渲染缓冲区的方式已经改变,以提高性能。来自OpenGL ES Programming Guide:
在iOS 4.2及更高版本中,性能 核心动画旋转 渲染缓冲区已经显着 改进了,现在是首选 方式之间旋转内容 风景和肖像模式。为了最好 性能,确保渲染缓冲区 高度和宽度均为倍数 32像素。
在iOS 4.2上,有一个错误,32个非32位OpenGL ES渲染缓冲区大小在模拟器下显示为黑色(但在设备上工作正常)。鉴于您的内容在某些尺寸上正确显示,而在其他尺寸上则不正确,您可能会遇到相关问题。
在任何情况下,您都需要确保渲染缓冲区现在甚至是32的倍数,以获得最佳性能。
答案 1 :(得分:1)
我怀疑同样的事情发生在我身上,我的应用程序正在研究4.2.2但它在4.3中有异化行为。我在'openGL视图'中绘制图像,这是UIScrollView的子视图,有时图像是黑色的,直到它获得捏合或捏合手势,有时当图像在缩放中调整大小时,它会留下黑色边框在之前的瞬间绘制图像的地方,有时候图像在滚动视图内滚动得很好,但有些图像会变成黑色并且不会跟随滚动。这些都不会发生在4.3设备中。
感谢您的时间。 格雷格
答案 2 :(得分:0)
我同意Brad的观点,黑色背景听起来像是32个bug,但是闪烁不是......也许你可以尝试将Raintained支持设置为true。这可能有所帮助。
在OpenGLES2DView.m中:
eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], kEAGLDrawablePropertyRetainedBacking, kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat, nil];
答案 3 :(得分:0)
我遇到了同样的问题,这让我发疯了。
要修复它,我只是为我的Open GL视图指定了backgroundColor
。我有没有想法这个东西是如何运作的,但是 为我解决了这个问题。
希望它有所帮助。
顺便说一句,这个特定的问题似乎在iOS 5上得到修复。