Проблемы с рисованием в OpenGL ES - PullRequest
0 голосов
/ 29 декабря 2010

В моем приложении у меня есть красный квадрат (фактически два треугольника), который рисуется на экране. Тем не менее, если пользователь нажимает на экран или перемещает палец, рисунок становится испорченным и приводит к тому, что квадрат начинает рисовать по случайным шаблонам. Есть идеи, почему это происходит? Код:

Triangle3D  *triangles = malloc(sizeof(Triangle3D) * 2);
triangles[0].v1 = Vertex3DMake(x, y, -3.0);
triangles[0].v2 = Vertex3DMake(x+1.0, y-1.0, -3.0);
triangles[0].v3 = Vertex3DMake(x-1.0, y-1.0, -3.0);
triangles[1].v1 = Vertex3DMake(x-1.0, y-1.0, -3.0);
triangles[1].v2 = Vertex3DMake(x+1.0, y-1.0, -3.0);
triangles[1].v3 = Vertex3DMake(x, y-2.0, -3.0);

    glLoadIdentity();

    glClearColor(0.7, 0.7, 0.7, 1.0);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glEnableClientState(GL_VERTEX_ARRAY);
    glColor4f(1.0, 0.0, 0.0, 1.0);
    glVertexPointer(3, GL_FLOAT, 0, triangles);
    glDrawArrays(GL_TRIANGLE_STRIP, 0, 18);
    glDisableClientState(GL_VERTEX_ARRAY);
    glClearColor(0.7, 0.7, 0.7, 1.0);

Ответы [ 2 ]

3 голосов
/ 29 декабря 2010

Ветеринары Треугольной Полосы должны быть расположены как этот график. TRIANGLE_STRIP

Другие формы.

Figure 1

2 голосов
/ 29 декабря 2010

Похоже, вы устанавливаете triangles[1].v1 3 раза, а не triangles[1].v1, v2, & v3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...