1
現在,我正在使用Oolong Engine在iPhone上玩OpenGL ES。這可能是一個愚蠢的問題,但是在應用程序退出時,在OpenGL之後清理它有多必要?我的問題是我有一個管理加載模型的靜態向量,並且鬆散地確保模型不會被加載兩次。因此,維也納組織和紋理的所有句柄都存儲在static map<Model>
的Model
對象中。當應用程序關閉時,地圖似乎不會調用各個Model對象上的析構函數,因此它們最終不會調用glDeleteBuffers()
。清理iPhone上的OpenGL後
我的問題是,這是完全必要的,如果應用程序足夠小,我永遠不會卸載並重新加載運行時的內存模型?或者OpenGL只是爲我照顧這一切?我可以創建一個從應用程序的dealloc
中調用的靜態CleanUp()
函數,但是值得嗎?
太棒了!它被認爲是確保它發佈的「最佳實踐」,還是它不擔心的事情之一? – Perrako 2010-08-04 02:00:52
當然,這種事情是最佳實踐,但通常在所有管理數據結構的背景下。換句話說,如果你的所有數據都有很好的集合和容器,那麼他們的正常清理工作(通過析構函數或你有什麼)很可能會照顧到資源。除此之外,當流程被拆除時,不要擔心。我會說一個不好的做法是有意編寫不做清理的代碼。 (僅僅因爲你「知道你可以」而將東西從dealloc方法等中排除出去。) – 2010-08-04 04:22:42