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