我正在尝试使用"Super Bible"在iPhone上学习OpenGL,但我无法从OpenGL移植到OpenGL ES。我的理解是glRectf()
功能在后者中不可用。什么是替代方法?任何相关的概念信息也将受到赞赏。
答案 0 :(得分:9)
替代方法是画一个三角形条:
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
的纹理矩形。
答案 1 :(得分:2)
不是做一个矩形,而是做两个三角形。
这真的无关紧要,因为iPhone上的GL-ES不支持立即模式。您需要在数组中定义所有顶点,并使用其中一个顶点数组渲染函数来绘制它们,而不是使用立即模式函数。