1

我正在制作 OpenGL 游戏,并希望同时支持纵向和横向。我编写了所有必要的代码来支持自动旋转,并希望通过以下方式通知我的游戏关于视口大小的变化

[[NSNotificationCenter defaultCenter] addObserver: self selector: 
        @selector(orientationChanged:) 
        name: UIDeviceOrientationDidChangeNotification 
        object: nil];

它可以旋转,但问题是图像仍然垂直渲染!我通过调用重新生成帧缓冲区layoutSubviews。但是这些代码返回垂直方向

int width, height;
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES
     , GL_RENDERBUFFER_WIDTH_OES, &width);
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES
     , GL_RENDERBUFFER_HEIGHT_OES, &height);

如何设置帧大小以使图像正确显示(水平)?

4

1 回答 1

1

解决了!

解决方案是设置 UIView 的 autoresizeMask 属性

[self setAutoresizingMask: UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];

感谢 Daij-Djan!

于 2013-09-09T11:50:12.050 回答