我正在制作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);

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

最佳答案

解决了!

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

[self setAutoresizingMask: UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];

感谢Daij-Djan!

关于ios - EAGLEView:旋转不会更改框架大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18695269/

10-11 22:46
查看更多