如果我这样做,假设其他一切都有用:
glcolor3f(1.f,1.f,1.f);
glBegin(GL_POLYGON);
glVertex3f(100.0, 100.0, 0.0);
glVertex3f(100.0, 600.0, 0.0);
glVertex3f(600.0, 600.0, 0.0);
glVertex3f(600.0, 100.0, 0.0);
glEnd();
我可以安全地画画,但是如果我通过这个没有出现:
glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
GLfloat vertici[] =
{
100.0, 100.0, 0.0,
100.0, 600.0, 0.0,
600.0, 600.0, 0.0,
600.0, 100.0, 0.0
};
GLfloat colori[] =
{
0.0, 1.0, 0.0,
1.0, 0.0, 0.0,
0.0, 0.0, 1.0,
1.0, 1.0, 0.0
};
GLfloat normali[] =
{
0.0, 0.0, 1.0,
0.0, 0.0, 1.0,
0.0, 0.0, 1.0,
0.0, 0.0, 1.0
};
GLbyte indici[] =
{
0, 1, 2, 3
};
glVertexPointer(3, GL_FLOAT, 0, vertici);//dichiarativa
glColorPointer(3, GL_FLOAT, 0, colori);
glNormalPointer(GL_FLOAT, 0, normali);
glDrawElements(GL_POLYGON, 4, GL_UNSIGNED_BYTE, indici);//disegnante
glDisableClientState(GL_NORMAL_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);
怎么了?我需要激活什么?我忘记了什么?我犯了错误? 我使用SDL,过剩,glew。