这类似于 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 上的边界大小,mainScreen
我会得到 1024x768。
(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 上。我将继续追踪这一点,但没有太多可做的。