我的應用程序「Guess-A-Sketch」在ios 4.3中有畫圖問題。我有一個畫黑色的畫布。奇怪的是我發現,如果我調整ogl視圖的框架大小略有似乎工作..我在appstore中的版本不起作用,所以我必須做一個更新來修復..雖然它看起來像一個錯誤。任何人看到這個?很煩人!即使我的框架調整修複視圖閃爍黑色時,我已經在以前的ios版本平滑的視圖上的動畫變換爲什麼我的OpenGL ES視圖有時在iOS 4.3上空白?
回答
您可能遇到this answer中提到的問題。在iOS 4.2中,渲染緩衝區的處理方式已經改變,以提高性能。從OpenGL ES Programming Guide:
在iOS系統4.2和更高版本,性能 renderbuffers核心動畫旋轉 有顯著一直 改善,現在旋轉之間 風景和肖像模式內容的首選方式 。爲獲得最佳 性能,請確保渲染緩衝區的高度和寬度均爲32像素的倍數 。
在iOS 4.2上,出現了一個錯誤,其中非32的OpenGL ES渲染緩衝區大小在模擬器下顯示爲黑色(但在設備上工作正常)。鑑於您的內容在某些尺寸顯示正確,但不是其他尺寸,您可能會遇到相關問題。
在任何情況下,無論如何,爲了獲得最佳性能,您需要確保渲染緩衝區現在甚至是32的倍數。
我同意布拉德黑色背景聽起來像32錯誤,但閃爍不......也許你可以嘗試設置Raintained支持爲真。這可能有幫助。
在OpenGLES2DView.m:
eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], kEAGLDrawablePropertyRetainedBacking, kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat, nil];
我懷疑,同樣的事情發生在我身上,我的申請於4.2.2工作,但它有疏遠的行爲4.3。我在'openGL視圖'中繪製圖像,該視圖是UIScrollView的子視圖,有時圖像是黑色的,直到圖像變爲縮小或縮小手勢,有時圖像在縮放時調整大小,它留下黑色邊框在之前的圖像被繪製的地方,有時圖像在滾動視圖內滾動良好,但其他圖像變成黑色並且不跟隨滾動。 4.3設備中沒有這些事情發生。
謝謝你的時間。 Greg
我忘了說這種行爲發生在每個尺寸的圖像上,當我的幀緩衝區是32的倍數時,但在這種情況下,我會說黑色圖像不太常見,它也可能是偏執狂。 – Greg 2011-06-09 08:37:21
我有同樣的問題,這讓我瘋狂。
要解決這個問題,我只是爲我的Open GL視圖指定了一個backgroundColor
。我有沒有想法這個東西是如何工作的,在這裏,但是確實爲解決了這個問題。
希望它可以幫助。
順便說一下,這個特定的問題似乎是固定在iOS 5上。
- 1. 的OpenGL ES(在iOS上):
- 2. 使用以下代碼時,爲什麼我的OpenGL ES視圖不更新?
- 3. 爲什麼我在IOS上獲取Mapboxgl api的空白頁?
- 4. 爲什麼我的iPhone OpenGL-ES紋理不包含視口?
- 5. 爲什麼OpenGL ES覆蓋所有Android視圖?只是我想離線渲染〜
- 6. 我不明白爲什麼有這麼多的空白空間?
- 7. 爲什麼iOS模擬器僅顯示空白視圖/窗口?
- 8. 爲什麼我的Revit視圖是空白的?
- 9. 爲什麼在iOS OpenGL ES 2.0中不重複這種紋理?
- 10. 爲什麼我的viewpager返回空白視圖?
- 11. 在OpenGL ES 1.1中縮放時避免紋理間的空白
- 12. iOS OpenGL ES與Android OpenGL ES兼容?
- 13. 爲什麼在我的HTML textarea中有空白時,當我有佔位符時?
- 14. OpenGL ES 3(iOS)紋理奇怪 - 想知道爲什麼
- 15. 爲什麼還有空白?
- 16. 當我刪除子視圖時,爲什麼我的視圖變成白色?
- 17. OpenGL ES(在iOS上):glDrawArrays上的EXC_BAD_ACCESS調用球體繪圖
- 18. 爲什麼我的熱圖空白(白色)?
- 19. IOS:爲什麼我的tableview的第一行是空白的?
- 20. AutofacInstanceContext.Current爲空,我不明白爲什麼
- 21. OpenGL ES 1.1在iOS中會過時嗎?
- 22. 爲什麼我的碎片空白?
- 23. OpenGL ES:在視圖下方顯示
- 24. OpenGL ES爲什麼我的紋理變成了180度?
- 25. 爲什麼我在iPad上調整OpenGL ES 2.0模板的速度太慢?
- 26. OpenGL ES:使用紋理:空白而不是紋理圖像
- 27. iOS上的OpenGL ES 2和3
- 28. 爲什麼glDeleteTextures()在OpenGL ES 2.0中有三個參數?
- 29. 多視口OpenGL ES
- 30. 爲什麼我的程序在textfields保持空白時崩潰?
感謝您的幫助,我會試試這個。我猜閃爍的是,我的變換是視圖上的一個動畫尺度,因此它正在通過一些不好的尺寸進行縮放?沒有發生在os的早期版本中,只有4.3。我會嘗試速度的建議,但最終的結果大小。 – Daniel 2011-03-22 04:39:34