2012-05-09 68 views
0

我無法得到((GL11Ext)gl).glDrawTexfOES/glDrawTexiOES擴展功能在我的Tegra 3設備(HTC One X)上工作。啓用GL錯誤後,我得到以下GLException:「內存不足」。Nvidia Tegra 3上的glDrawTexiOES

相同的代碼適用於我嘗試的每個其他Android設備/模擬器,但是使用我的One X我總是會遇到此錯誤。我試過減小紋理的大小,但沒有區別。 (是的,紋理尺寸總是2的冪)。

有沒有其他人遇到過這個問題?有任何想法嗎?謝謝。

+0

只是一個簡單的想法:你確定你沒有泄漏內存的地方是你的代碼嗎?順便提一下,我總是把一些代碼剝離到最低限度。 – rekire

+0

我應該說,我實際上使用「Codehead的BFF加載器/渲染器」,請參閱此處的課程:http://www.codehead.co.uk/cbfg/TexFont.java 我不認爲它是一個內存泄漏,glDrawTexfOES首次調用時會返回錯誤。它在我嘗試過的所有其他Android設備上運行良好。 – ShibbyUK

+0

你有另一臺運行Tegra 3的設備嗎?我會通過使用一個小的示例應用程序來排除'TexFont'內部的錯誤。 –

回答

0

看起來像Tegra 3不支持這種擴展。所以最後,我改變了TexFont來渲染紋理「四邊形」,它似乎工作正常。

0
for(int lines = fntTexHeight-1; lines>0 ; --lines) {  
    pix.put(bits, lines * lineLen, lineLen); 
} 

**pix.position(0);** //need this 

// Place bitmap in texture 

gl.glBindTexture(GL10.GL_TEXTURE_2D, texID); 
+0

這無疑是OP的問題的答案 – NetStarter