2012-05-09 3 views
0

Я не могу получить ((GL11Ext) gl) расширение .glDrawTexfOES/glDrawTexiOES для работы на моем устройстве Tegra 3 (HTC One X). С включенными ошибками GL я получаю следующее GLException: «вне памяти».glDrawTexiOES на Nvidia Tegra 3

Тот же код работает на всех других устройствах/эмуляторах Android, которые я пытаюсь, но с моим One X я всегда получаю эту ошибку. Я попытался уменьшить размер текстуры прямо вниз, но это не имеет никакого значения. (Да, размер текстуры всегда равен 2).

Имеет ли какое-либо тело другие проблемы с этим? Есть идеи? Благодарю.

+0

Только одна простая идея: вы уверены, что вы не утечка памяти где-то в вашем коде? Кстати, я всегда рекомендую предоставить некоторый код, сведенный к минимуму. – rekire

+0

Я должен был сказать: я на самом деле использую «загрузчик/рендерер» в Codehead Bread, см. Класс здесь: 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

Смежные вопросы