我的iPad应用程序中存在openGL和方向问题。这个问题只发生在4.3+设备上。 4.2设备不会发生这种情况。
当我以任何方向和绘图启动应用程序时,它会正确绘制,但是当我更改方向并尝试绘制时,iPad会重新启动。重启发生在通话
上[context presentRenderbuffer:GL_RENDERBUFFER_OES];
这是我在layoutSubviews中使用的代码:
-(void) layoutSubviews {
[EAGLContext setCurrentContext:context];
glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer);
[context renderbufferStorage:GL_RENDERBUFFER_OES fromDrawable:(id<EAGLDrawable>) [self layer]];
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &backingWidth);
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &backingHeight);
glScissor(0, 0, [self bounds].size.width, [self bounds].size.height);
NSLog(@"%f - %f", [self bounds].size.width, [self bounds].size.height);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, depthRenderbuffer);
glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES, backingWidth, backingHeight);
[self erase];
[self drawExisting];
glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer);
[context presentRenderbuffer:GL_RENDERBUFFER_OES];
}
我的问题是,有什么变化是4.3吗?我找不到任何陈述的东西。或者,如果您在我的代码中发现任何错误,请告诉我。
答案 0 :(得分:0)
我通过在layoutSubviews中销毁然后创建缓冲区来解决这个问题。这引起了我能够解决的一些新的小问题。 destroy和create方法来自这里: http://box2d.googlecode.com/.../Box2DView.mm