我正在将一些代码从OpenGL移植到ES版本.我正在使用glDrawArrays()来绘制一个三角形glVertexPointer()
.但是,它不会在屏幕上绘制.完整的代码是:
void init(void)
{
glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeModel (GL_FLAT);
}
void display(void)
{
glEnableClientState (GL_COLOR_ARRAY);
glClear (GL_COLOR_BUFFER_BIT);
glColor4f (0.0, 0.0, 1.0, 1.0);
glLoadIdentity ();
glTranslatef(0, 0, -20);
const GLfloat triVertices[] = {
0.0f, 1.0f, 0.0f,
-1.0f, -1.0f, 0.0f,
1.0f, -1.0f, 0.0f
};
glVertexPointer(3, GL_FLOAT, 0, triVertices);
glDrawArrays(GL_TRIANGLES, 0, 3);
glDisableClientState(GL_VERTEX_ARRAY);
glFlush ();
}
void reshape (int w, int h)
{
glViewport (0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
glFrustum (-1.0, 1.0, -1.0, 1.0, 1.5, 20.0);
glMatrixMode (GL_MODELVIEW);
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (400, 400);
glutInitWindowPosition (100, 100);
glutCreateWindow (argv[0]);
init ();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
GLUT打开窗户,用黑色清除,但不画任何东西.有人可以发现我做错了吗?谢谢.
Mic*_*ade 10
我看不到电话glEnableClientState(GL_VERTEX_ARRAY);
.我也看到glEnableClientState (GL_COLOR_ARRAY);
但没有打电话给glColorPointer()
.也许你在写另一个时就写了一个?
归档时间: |
|
查看次数: |
7858 次 |
最近记录: |