OpenGL для OpenGL-ES - glRectf () - PullRequest
3 голосов
/ 05 мая 2009

Я пытаюсь изучить OpenGL на iPhone с помощью "Супер Библия" , но у меня возникают проблемы при портировании с OpenGL на OpenGL ES. Насколько я понимаю, функция <a href="http://www.opengl.org/sdk/docs/man/xhtml/glRect.xml" rel="nofollow noreferrer">glRectf()</a> недоступна в последнем. Каков альтернативный подход? Любая значимая концептуальная информация также будет оценена.

Ответы [ 2 ]

9 голосов
/ 05 мая 2009

Заменяющий подход - нарисовать треугольную полосу:

GLfloat texture[] =
{
    0, 0,
    0, 1,
    1, 0,
    1, 1
};

GLfloat model[] =
{
    0, 0, // lower left
    0, h, // upper left
    w, 0, // lower right
    w, h  // upper right
};

glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);

glVertexPointer(2, GL_FLOAT, 0, model);
glTexCoordPointer(2, GL_FLOAT, 0, texture);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);

Рисует текстурированный прямоугольник шириной w и высотой h.

2 голосов
/ 05 мая 2009

Вместо того, чтобы делать прямоугольник, вы просто делаете два треугольника.

Это действительно не имеет значения, поскольку GL-ES на iPhone не поддерживает немедленный режим. Вам нужно определить все свои вершины в массиве и использовать одну из функций рендеринга массива вершин, чтобы нарисовать их, а не использовать функции непосредственного режима.

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