2014-08-23 3 views
0

Стек нижнего стека GL происходит в glPopMatrix();Android GLException: нижнее белье стека

Я не могу понять эту проблему у меня есть .. Но я просто думаю, толчок & поп-матрица ...

Я знаю Popping стек ни с чем на нем может произойти «стек сгущенного ... , но я не думаю, что у меня есть эта проблема. Пожалуйста, дайте мне ответ!

gl.glMatrixMode(GL10.GL_MODELVIEW); 
      gl.glLoadIdentity(); 
      gl.glPushMatrix(); 
       gl.glScalef(1f, 1f, 1f); 
       gl.glTranslatef(0f, 0f, 0f); 

       gl.glMatrixMode(GL10.GL_TEXTURE); 
       gl.glLoadIdentity(); 
       gl.glTranslatef(0.0f, bgScroll1,0.0f); 
       background.draw(gl); 
      gl.glPopMatrix(); //stack underflow happens at this line 

ответ

1

ГЛ поддерживает seprate стек матрицы для каждого типа матрицы: GL_MODELVIEW, GL_PROJECTION, ADN GL_TEXTURE. Операции push/pop-матрицы всегда работают в текущем режиме матрицы (как все связанные с матрицей команды GL). Таким образом, ваш код нажимает на стек модели и пытается выскочить из стека матрицы текстур, который, вероятно, пуст.

После того, как вы изменили матрицу текстуры, вы должны установить матричный режим на GL_MODELVIEW.

+0

Большое вам спасибо ... тогда мне нужно использовать 'pushMatrix' в 'Texture Matrix' ??? –

+0

Или в режиме просмотра модели модели? –

+0

@KyeongsikJasonKim: Вы хотите нажать матрицу текстуры в стек? Я не знаю этого. Из того, как упорядочен код, похоже, что вы хотите сохранить матрицу modelview, примените некоторые локальные преобразования для рисования этого «фона» и восстановите его. Поэтому вы должны нажать, а затем поместить матрицу просмотра модели. Вы также можете захотеть, чтобы модификация текстурной матрицы была локальной по отношению к «фону», поэтому вы можете захотеть _addition_ нажать и поместить этот. – derhass

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

  • Нет связанных вопросов^_^