我不確定問題出在哪裏。我的應用程序在模擬器上運行良好,但是當我嘗試在iPhone上運行它時,它在調試過程中崩潰或沒有使用信號「0」進行調試。我使用Apple提供的示例中的Texture2D.m和OpenGLES2DView.m。我使用庫中的Memory Tracer對儀器上的iPhone進行了應用程序分析,當應用程序死亡時,最終消耗的內存大約爲60Mb真實和90 + Mb虛擬。是否還有其他問題,或iPhone是否因爲消耗了太多內存而殺死應用程序?如果您需要任何信息,請說明,我會盡力提供。我在加載時創建了數千個紋理,這就是內存消耗如此之高的原因。真的無法做任何事情減少圖片被加載的數量。之前我剛剛在UIImage上運行,但它給了我非常低的幀速率。我在這個網站上讀到,我應該使用OpenGLES獲得更高的幀速率。iPhone OpenGLES:紋理消耗太多內存,程序崩潰,信號「0」
也有子問題有沒有辦法不使用UIImage來加載PNG文件,然後使用提供的Texture類來創建OpenGLES函數的紋理來使用它來繪製? OpenGLES中是否有一些函數會直接從png文件創建紋理?
那麼有成千上萬的圖像加載,但只有少數顯示在約10-50的時間。 – CustomAppsMan 2009-08-05 04:27:33
圖像大約是128x128像素。 – CustomAppsMan 2009-08-05 04:28:07
我剛剛下載了stb_image.c文件,並將其編譯到我的項目中,並使用它來加載OpenGLES紋理,如下所示: int x,y,comp; void * data =(void *)stbi_load(fileName,&x,&y,&comp,0); glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,x,y,0,GL_RGBA,GL_UNSIGNED_BYTE,data); 結果是整個屏幕變爲空白。在用UIImage加載的替代方法中,png工作正常。 當我寫這篇文章時,我只記得蘋果iPhone在綁定它們之前就損壞了.png文件。所以我會試着解決這個問題。 – CustomAppsMan 2009-08-05 05:08:46