void draw() { glClearColor(0.2, 0.2, 0.2, 0); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // setup camera glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(camera.fov, 1.33, 0.1, 1000); gluLookAt(0, 0, 0, 0, 0, -1, 0, 1, 0); // render world objects glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glRotatef(rad2deg(camera.roll), 0, 0, 1); glRotatef(rad2deg(camera.pitch), 1, 0, 0); glRotatef(rad2deg(camera.heading), 0, 1, 0); glTranslatef(-camera.pos.x, -camera.pos.y, -camera.pos.z); glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LESS); glEnable(GL_TEXTURE_2D); draw_checker(); draw_maze(); if (mflag) { genmap1(); mwall(); } static float t = 0; t += 2; glRotatef(t, 0, 1, 0); glTranslatef(0, 11, 0); draw_unit_cube(); g_t += 0.001; }