2012-05-28 62 views
0

我開發一個動態壁紙與opengl ES 2.0,我想知道是否有一種方法來保持紋理加載渲染器,或位圖的創建,所以他們不會每次屏幕方向更改或屏幕熄滅時都需要重新創建。 我已經完成了這與緩衝區(指數等),但紋理和位圖回收。Android OpenGl Es 2.0動態壁紙紋理和位圖

回答

0

您所遇到的行爲是Android中OpenGL應用程序的標準生命週期行爲的一部分。

正是在這樣的谷歌I/O的視頻在30:29

http://developer.android.com/videos/index.html#v=5yorhsSPFG4

很好解釋不管怎樣,事實證明他記憶中的GPU需要重新初始化,並不意味着你需要重新加載。

可以實現通過執行以下操作相當不錯的表現:在啓動時在內存

  1. 負載的一切(維也納組織+紋理+指數+等)

  2. 裝載了GPU內存和綁定每次你回來,從分配的系統內存的情況下(點1)到GPU

這樣你把二鳥石頭,你能保證你的[R資源始終具有良好的可用性,每次發生「回退」時都不會加重負載時間。

+0

謝謝你的回覆,我認爲我的問題是你描述的。當你說要將紋理加載到內存中時,你能告訴我,所以我可以在每次回到上下文時使用它們,你的意思是什麼?回收的對象不僅僅是opengl紋理,還有位圖,那麼從png文件加載什麼樣的內容呢?謝謝 –