[英]OpenGL ES sprites no longer render after updating to iOS 7.1
我使用基於本教程一個簡單的2D精靈類來渲染PNG位圖到屏幕上:
在運行iOS 6.1的iPhone 4S和運行iOS 7的iPhone 5S上,一切正常。由於我更新到iOS 7.1,並且在MacBook Air上更新到Mavericks和XCode 5.1,因此精靈不再顯示在屏幕上(我只得到一個空白屏幕,這是我清除背景的顏色)。 當我使用的XCode 5.1構建應用程序,並在我的iPhone 4S再次運行,它仍然有效。
有誰知道是什么原因造成的? 有沒有人遇到這個問題? 我有麻煩的問題的根源是由於我缺乏除其他事項外的OpenGL ES的理解。 :)我的精靈類與本教程中的類完全相同。
讓我知道,如果需要更多的細節/代碼段。
我什至不去看示例代碼,因為它聽起來好像與您當前的代碼不同。 (您說“基於”。)但是,我將告訴您如何查找問題。
首先,清除白色(例如紅色)以外的東西作為測試。
如果屏幕變成紅色,則至少知道您的視圖和上下文以及打開gl的總體效果。 這消除了許多可能的罪魁禍首。
其次..使用調試工具,很可能會帶您正確解決問題。 您必須在連接的設備上運行,而不是在SIM卡上運行。 運行您的應用...
在調試導航器中單擊FPS。 然后單擊分析並耐心等待。 這將對open gl中發生的情況進行一幀快照。 它必須做很多事情才能實現,並且大約需要30秒。 但是,然后您將獲得一個交互式的東西,向您展示框架,並讓您逐步執行流程,查看是什么代碼使這種情況發生,以及框架繪制每個元素時的情況。 真的很酷。 可能會顯示一條錯誤消息(紅色)。
我的猜測是它不再加載您的Sprite圖片。 在6到7之間或Xcode或OSX的版本之間可能有所更改。 在那種情況下,屏幕是空白的,因為它們沒有被加載,因此沒有被繪制。
編輯:我認為分析將有助於發現您的問題。 但是要提供更多的可能性,以我的經驗,什么也沒畫,通常是這些事情之一:
gl_FragColor = vec4(0.0,0.0,1.0,1.0)
或一些對比色進行測試。 你看到你的結構了嗎? glEnableVertexAttribArray
(如果我想到它們,我會添加更多)
什么時候做
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.