我正在使用緩衝區來將非常大的圖片(屏幕大小)加載到單個表面。 這個想法是一幀一幀地動畫大量的圖片(超過視頻內存可以存儲)。關於在IOS opengl上快速交換紋理ES
我已經創建了一個用於製作緩衝區的代碼,但是我在加載位圖的時候遇到了很大的問題。
我的代碼工作的:
我加載本地的位圖文件路徑的數組。
我(想)我preload我的位圖數據在內存中。我用一個線程在NSArray中爲我的所有圖片存儲一個CGImageRef(40時刻)
在第二個線程中,代碼看另一個NSArray以確定是否爲空,如果是空的,我通過創建紋理將我的cgimageRef綁定到視頻內存。 (爲此使用共享組) 該數組存儲20個紋理名稱的地址,並直接由openGL用於繪製表面。這個數組是我的(緩衝區)
當我玩我的動畫,我從我的「緩衝區」和我的線程(在點3)加載一個新紋理刪除舊紋理。
它的工作很棒,但速度非常慢,幾秒鐘後動畫就會缺失。
你能幫我優化我的代碼嗎?