這個問題是主觀的,但並不完全:我希望聽到別人的經驗(或者合理的答案應該也可以)。通過NDK的Android OpenGL ES:放置jpg解壓縮和綁定到紋理
我正在編寫Android OpenGL ES 1.1應用程序。它使用NDK:核心OpenGL渲染採用本機代碼,非常類似於NDK附帶的san-angeles OpenGL sample。我使用的OpenGL紋理可以作爲JPG格式讀入應用程序。我知道這是怎麼做的,但我想知道是最有效率的地方(通過高效率,我的意思是快速執行)。
爲了說明,這裏的幾個場景,基於我的項目中輸入的JPG文件結合OpenGL紋理:
1)中的Java代碼,使一個位圖從JPG(即其解壓縮),並綁定並加載使用Java OpenGL綁定的紋理。紋理ID通過NDK傳遞給本地代碼,以便本機代碼可以將它們用於紋理映射。
2)Java代碼從JPG製作位圖(即解壓縮它),並將原始圖像數據通過NDK傳遞給本地代碼,然後該代碼綁定並加載來自該原始圖像數據的紋理。
3)Java代碼通過NDK將壓縮後的JPG數據傳遞給本地代碼,該代碼解壓縮位圖,然後綁定和加載紋理。
我使用的NDK和本機代碼並非出於速度原因,而是出於可移植性的原因 - 我想讓我的核心OpenGL代碼在iPhone和Android上工作,就像NDK附帶的san-angeles OpenGL sample一樣。我知道,本地並不總是比Java代碼更快。
感謝這個可用。你能解釋一下命名mp3的意義嗎?什麼會自動壓縮它,否則? – MeinHeinlein
爲什麼通過libzip訪問我的資產有幫助?如果你在答案中加入了任何額外的信息,而不是評論,這將會很有幫助,因爲這對其他人閱讀你的答案會更好。 – MeinHeinlein
順便說一句,有時我的JPG數據通過網絡(HTTP)而不是從磁盤傳遞,但它也可能來自磁盤,因爲下載將被緩存在磁盤上。這如何影響你的策略? – MeinHeinlein