EAGLViewクラスを使用するように設定された空のビューでiPhone/ipadアプリを使用しています。フレームバッファを次のように初期化します。
self.contentScaleFactor = [[UIScreen mainScreen] scale];
self.layer.contentsScale = [[UIScreen mainScreen] scale]; //this is 1.0
glGenFramebuffersOES(1, &defaultFramebuffer);
glBindFramebufferOES(GL_FRAMEBUFFER_OES, defaultFramebuffer);
glGenRenderbuffersOES(1, &colorRenderbuffer);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, colorRenderbuffer);
[context renderbufferStorage:GL_RENDERBUFFER_OES fromDrawable:(CAEAGLLayer*)self.layer];
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &framebufferWidth);
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &framebufferHeight);
その後、framebufferWidthは1568、framebufferHeightは1216です。私のデバイスは[[UIDevicecurrentDevice]モデル]によって@"ipad"、iOS4.3.5として報告されます。Xcode 4.5.1、SDK 6、展開ターゲット4.3。
1024x768ではなく、なぜこのサイズを入手したのか、誰かが知っていますか?
ありがとう。
後で編集:同じコードが、展開ターゲット4.0のXcode3.xおよびSDK4.3で完全に機能しました。