trying to draw a flat plane with a bunch of quads to later make terrain. i can draw one quad but when i changed it to draw many, i get no output.
void ResizeWindow(int width, int height)
{
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f, (GLfloat)width/(GLfloat)height, 1.0f, 1000.0f);
glMatrixMode(GL_MODELVIEW);
glutPostRedisplay();
}
void keyboard(unsigned char key, int x, int y)
{
extern float camHeight;
switch (key)
{
case 'z':case'Z':
camHeight -= 0.05;
break;
case 'a':case'A':
camHeight += 0.05;
break;
}
}
void initLights()
{
float lightPos[4] = {0, 0, 20, 1}; // positional light
// set up light colors (ambient, diffuse, specular)
GLfloat lightKa[] = {.2f, .2f, .2f, 1.0f}; // ambient light
GLfloat lightKd[] = {.7f, .7f, .7f, 1.0f}; // diffuse light
GLfloat lightKs[] = {1, 1, 1, 1}; // specular light
glLightfv(GL_LIGHT0, GL_AMBIENT, lightKa);
glLightfv(GL_LIGHT0, GL_DIFFUSE, lightKd);
glLightfv(GL_LIGHT0, GL_SPECULAR, lightKs);
// position the light
glLightfv(GL_LIGHT0, GL_POSITION, lightPos);
glEnable(GL_LIGHT0); // MUST enable each light source after configuration
}
void setCamera(void)
{
extern float camHeight;
gluLookAt(-1, camHeight, -1, 1, 0, 1, 0, 10, 0); // eye(x,y,z), focal(x,y,z), up(x,y,z)
}
void InitOpenGL(void)
{
glShadeModel(GL_SMOOTH);
glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST);
glEnable(GL_LIGHTING);
glEnable(GL_DEPTH_TEST);
//glEnable(GL_CULL_FACE);
glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE);
glEnable(GL_COLOR_MATERIAL);
glClearColor(0,0,0,0);
initLights();
}
void Draw()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//glLoadIdentity();
setCamera();
for (float x = 0; x == 0.9; x += 0.1)
{
for (float z = 0; z == 0.9; z += 0.1)
{
glBegin(GL_QUADS);
glColor3f(1,0,0);glVertex3f(x,0.0f,z);
glColor3f(0,1,0);glVertex3f(x + 0.1f,0.0f,z);
glColor3f(0,0,1);glVertex3f(x + 0.1f,0.0f,z + 0.1f);
glColor3f(0,1,1);glVertex3f(x,0.0f,z + 0.1f);
glEnd();
}
}
glutSwapBuffers();
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE |GLUT_DEPTH);
glutInitWindowSize(800,600);
glutCreateWindow("Core Engine Test");
glutDisplayFunc(Draw);
glutIdleFunc(Draw);
glutReshapeFunc(ResizeWindow);
glutKeyboardFunc(keyboard);
InitOpenGL();
glutMainLoop();
return 0;
}