OpenGL更改方向导致iPad重新启动

时间:2011-05-23 18:31:19

标签: ios opengl-es orientation restart

我的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吗?我找不到任何陈述的东西。或者,如果您在我的代码中发现任何错误,请告诉我。

1 个答案:

答案 0 :(得分:0)

我通过在layoutSubviews中销毁然后创建缓冲区来解决这个问题。这引起了我能够解决的一些新的小问题。 destroy和create方法来自这里: http://box2d.googlecode.com/.../Box2DView.mm