gpt4 book ai didi

ios - OpenGL 改变方向导致 iPad 重启

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:46:52 25 4
gpt4 key购买 nike

我的 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 有什么变化吗?我找不到任何说明这一点的内容。或者,如果您在我的代码中发现任何错误,请告诉我。

最佳答案

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

关于ios - OpenGL 改变方向导致 iPad 重启,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6101333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com