這與另一個在stackoverflow上的問題類似,但是這裏的大小有0,0
,這裏我得到了奇怪的非零大小錯誤。所以看起來這可能是一個不同的問題。glGetRenderbufferParameterivOES上的非零大小錯誤
當我在layoutSubviews中配置framebuffer時發生問題。
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &backingWidth);
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &backingHeight);
當此調用返回我收到大小1139
(backingHeight
)×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
所以在某種程度上看來,這些邊界不結轉到backingWidth
和OpenGL的EAGLayer的backingHeight
。 framebuffer仍然被創建,但我的內容是基於錯誤(較大)的大小,並從屏幕上退出。
我在xcode 4.5.2上,ipad在iOS 5.1.1上。我會繼續跟蹤這一點,但沒有太多可走。
一些多個附加數據,所述layer.frame也攜帶尺寸不正確 (LLDB)打印self.layer.frame (的CGRect)$ 3 =原點=(X = 0,Y = 20)大小=(寬度= 841,身高= 1139) – nishant