| // compile the display list, store the grid in it | |
| glNewList(grid, GL_COMPILE); | |
| GLint skybox_ptr; | |
| skybox_ptr = glGetUniformLocation(shader, "isSkybox"); | |
| glUniform1i(skybox_ptr, 0); | |
| // The actual grid | |
| int x, y, z; | |
| for (x=-MAP_HALFWIDTH; x<MAP_HALFWIDTH-1; x++) | |
| { | |
| glBegin(GL_TRIANGLE_STRIP); | |
| for (z=-MAP_HALFLENGTH; z<(MAP_HALFLENGTH-1); z++) | |
| { | |
| glVertex3f(x, 0.0, -(z)); | |
| glVertex3f(x+1, 0.0, -(z)); | |
| } | |
| glEnd(); | |
| } | |
| glUniform1i(skybox_ptr, 1); | |
| // The skybox | |
| // The first two walls | |
| for (x=-MAP_HALFWIDTH; x<=MAP_HALFWIDTH; x+=MAP_HALFWIDTH) | |
| { | |
| glBegin(GL_TRIANGLE_STRIP); | |
| glVertex3f(x, -MAP_HALFHEIGHT, -MAP_HALFLENGTH); | |
| glVertex3f(x, MAP_HALFHEIGHT, -MAP_HALFLENGTH); | |
| glVertex3f(x, -MAP_HALFHEIGHT, MAP_HALFLENGTH); | |
| glVertex3f(x, MAP_HALFHEIGHT, MAP_HALFLENGTH); | |
| glEnd(); | |
| } | |
| // The other two walls | |
| for (z=-MAP_HALFLENGTH; z<=MAP_HALFLENGTH; z+=MAP_HALFLENGTH) | |
| { | |
| glBegin(GL_TRIANGLE_STRIP); | |
| glVertex3f(-MAP_HALFWIDTH, -MAP_HALFHEIGHT, z); | |
| glVertex3f(-MAP_HALFWIDTH, MAP_HALFHEIGHT, z); | |
| glVertex3f(MAP_HALFWIDTH, -MAP_HALFHEIGHT, z); | |
| glVertex3f(MAP_HALFWIDTH, MAP_HALFHEIGHT, z); | |
| glEnd(); | |
| } | |
| // Ceiling | |
| glBegin(GL_TRIANGLE_STRIP); | |
| glVertex3f(-MAP_HALFWIDTH, MAP_HALFHEIGHT, -MAP_HALFLENGTH); | |
| glVertex3f(MAP_HALFWIDTH, MAP_HALFHEIGHT, -MAP_HALFLENGTH); | |
| glVertex3f(-MAP_HALFWIDTH, MAP_HALFHEIGHT, MAP_HALFLENGTH); | |
| glVertex3f(MAP_HALFWIDTH, MAP_HALFHEIGHT, MAP_HALFLENGTH); | |
| glEnd(); | |
| glEndList(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment