У меня возникла небольшая проблема, которую я заметил в течение первых 10 минут работы с OpenGLES, что на самом деле вызовы функций в основном одинаковы, однако то, как вы настраиваете свои методы, совершенно иное.OpenGl ES 2D Android redraw
Я понимаю основы анимации многоугольника в OpenGL. Идея изменения модели, а затем повторного рисования сцены и использования двойной буферизации, чтобы сократить отставание, которое вы видите при быстром перемещении или обновлении вещей быстро и много.
Итак, здесь мой вопрос. Как бы я сделал то же самое. В OpenGl на C или C++ у меня может быть свой собственный метод, который вызывает функцию display(), которая будет повторно рисовать сцену.
Я осмотрелся и должен был научиться рисовать простой полигон. Я предполагаю, что он совершенно другой. Я осмотрел здесь, и я нашел несколько уроков для вещей, но ничто, кажется, действительно не ведет домой, что за методология стоит за изменением. Меня интересует его понимание и копирование.
Благодаря
Нового материала:
Вот что я пытаюсь достичь в андроиде. Этот код находится на C. Из моего чтения, как я понимаю OpenGL, не рекомендуется, но я чувствую, что все равно могу добиться того же.
Этот код отражает, что у вас есть слушатель, который ждет нажатия кнопки, и после этого он выполняет соответствующий код и повторно рисует дисплей. Это из моего понимания, если оно отличается от OpenGL ES.
void main(int argc, char** argv)
{
/* Standard GLUT initialization */
glutInit(&argc,argv);
/* default, not needed */
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500,500); /* 500 x 500 pixel window */
/* place window top left on display */
glutInitWindowPosition(0,0);
glutCreateWindow("COMP-5/6400 Assignment 2"); /* window title */
/* display callback invoked when window opened */
glutDisplayFunc(display);
glutSpecialFunc (processSpecialKeys);
myinit(); /* set attributes */
glutMainLoop(); /* enter event loop */
}
void processSpecialKeys(int key, int x, int y)
{
switch(key){
case GLUT_KEY_UP:
moveUp();
break;
case GLUT_KEY_DOWN:
moveDown();
break;
case GLUT_KEY_LEFT:
moveLeft();
break;
case GLUT_KEY_RIGHT:
moveRight();
break;
}
}
void moveUp(){
personX= (5.0*cosf(personRota))+personX;
personY= (5.0*sinf(personRota))+personY;
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
display();
}
Вы имеете в виду, что 'glVertexXY' больше нет? И - если вы этого не говорили - вы нашли ['GLSurfaceView'] (http://developer.android.com/reference/android/opengl/GLSurfaceView.html)? –
Ya они покончили с glVertexXY, по какой причине я не уверен. Из того, что я прочитал, люди сказали, что это неэффективно ... его интернет, поэтому я беру это с ОГРОМНЫМ зерном соли. Я не смотрел в glsurfaceview, когда я возвращаюсь домой сегодня, я буду благодарен! – Elliott