これは、stackoverflow に関する別の質問に似ていますが、サイズがあり0,0、ここで奇妙な非ゼロ サイズが間違っています。したがって、これは別の問題として分類される可能性があるようです。
この問題は、layoutSubviews でフレームバッファを構成しているときに発生します。
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &backingWidth);
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &backingHeight);
この呼び出しが返されたとき、取得しているサイズは1139( backingHeight) x 841( backingWidth) です。
これらのサイズは、私が知っているどの標準寸法にも対応していないため、非常に奇妙に見えます。
iPadは縦向きモードです。スタックは で始まりますlayoutSubviews。以前のスレッドをいくつか読んでlayoutSubviews、ビューの安定化が完了した可能性があるときに呼び出しを延期することにしました。しかし、フレームバッファの作成を表示リンクのコールバックまで遅らせても、値は改善されず、1139(h) x 841(w) のままです。
また、デバッガーで UIScreen の境界サイズを調べると、mainScreen1024x768 になります。
(lldb) print ((CGRect)[[ UIScreen mainScreen ] bounds ]).size.height
(CGFloat) $0 = 1024
(lldb) print ((CGRect)[[ UIScreen mainScreen ] bounds ]).size.width
(CGFloat) $1 = 768
したがって、どういうわけか、これらの境界はOpenGL EAGLayer に引き継がbackingWidthれていないようです。backingHeightフレームバッファは引き続き作成されますが、コンテンツが間違った (大きい) サイズに基づいており、画面からはみ出します。
私は xcode 4.5.2 を使用しており、iPad は iOS 5.1.1 を使用しています。私はこれを追跡し続けますが、行くべきことはあまりありません。