opengl-es - opengl 1.1 渲染缓冲区生成只有 960px 而不是 1136px 宽度

标签 opengl-es iphone-5

我目前正在将我的 iPhone 游戏移植到 iPhone 5 分辨率。我包含了 Default-568h@2x.png 和

[[UIscreen mainScreen] bounds].size;

给我 iPhone 5 分辨率 (320x568px)。但是我在 OpenglES 1.1 中创建的 renderBuffer 只能获得旧的 iPhone 分辨率 (640x960px)。我创建渲染缓冲区的方式如下所示:

glGenFramebuffersOES(1, &viewFramebuffer);
glGenRenderbuffersOES(1, &viewRenderbuffer);

glBindFramebufferOES(GL_FRAMEBUFFER_OES, viewFramebuffer);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer);
[context renderbufferStorage:GL_RENDERBUFFER_OES fromDrawable:(CAEAGLLayer*)self.layer];
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, viewRenderbuffer);

GLint frameBufferWidth, frameBufferHeight;
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &frameBufferWidth);
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &frameBufferHeight);

当我在 iPhone 5 上运行游戏时,游戏仅覆盖屏幕的前 960 个像素并且被挤压。

有人知道如何创建适合 iPhone 5 屏幕尺寸的渲染缓冲区吗?

最佳答案

我找到了解决方案。这不是一个 opengl 问题。将 Xcode 升级到 v4.5 后,我的应用程序主窗口的界面生成器中的大小选项未设置。将选项设置为“Retina 3.5 全屏”解决了这个问题(通过这样做,主视图会自动缩放到 iPhone 屏幕的 3.5 或 4 英寸)。

这篇文章帮助了我: How to make a uitableview in interface builder compatible with a 4 inch iPhone

关于opengl-es - opengl 1.1 渲染缓冲区生成只有 960px 而不是 1136px 宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12588194/

相关文章:

android - 将二维数组传递到 GLES opengl 着色器

ios - 为 iPhone 5 屏幕和较小屏幕的设备设计

ios - iPhone 5 上的 AVSystemController_SystemVolumeDidChangeNotification

objective-c - 在越狱设备上使用 loadNibNamed 时可能会崩溃 [UIDeviceRGBColor superview] : unrecognized selector

opengl-es - OBJ 格式和平面与平滑着色

opengl-es - OpenGL ES - 获取当前的 blendFunc

android - 我的游戏需要多线程吗?

iphone - 从 5 月 1 日起 - iPhone 5 支持 - 那么应用商店支持的最低 iOS 版本是多少?

ios - 为 3.5 和 4 英寸屏幕尺寸调整 UIScrollView

ios - 在 iOS 上更改 OpenGL ES 版本