3

現在、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 画面のサイズに合うレンダー バッファを作成する方法を知っている人はいますか?

4

2 に答える 2

2

解決策を見つけました。それはopenglの問題ではありませんでした。Xcode を v4.5 にアップグレードした後、アプリケーションのメイン ウィンドウのインターフェイス ビルダーのサイズ オプションが設定されませんでした。オプションを「Retina 3.5 フルスクリーン」に設定すると、問題が解決しました (そうすることで、メインビューは iPhone 画面の 3.5 または 4 インチに自動的にスケーリングされます)。

この投稿は私を助けました: インターフェイスビルダーで uitableview を 4 インチ iPhone と互換性を持たせる方法

于 2012-09-26T11:10:40.040 に答える