1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
//! Initialiser OpenGL.
void initOpenGL() {
glClearColor(0, 0.5, 1, 0);
glMatrixMode(GL_PROJECTION);
gluPerspective(40, (double)640/480, 1, 500);
// Activer les états OpenGL.
glEnable(GL_DEPTH_TEST);
glEnable(GL_TEXTURE_2D);
glClear(GL_COLOR_BUFFER_BIT);
}
void draw(const Texture2D& texture) {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// Placer la caméra.
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(15, 10, 15, 0, 0, 0, 0, 1, 0);
// Dessiner le sol.
shader->enable();
glActiveTexture(GL_TEXTURE0);
texture.bind();
glBegin(GL_QUADS);
glMultiTexCoord2d(GL_TEXTURE0, 0, 0); glVertex3d(0, 0, 0);
glMultiTexCoord2d(GL_TEXTURE0, 1, 0); glVertex3d(10, 0, 0);
glMultiTexCoord2d(GL_TEXTURE0, 1, 1); glVertex3d(10, 0, 10);
glMultiTexCoord2d(GL_TEXTURE0, 0, 1); glVertex3d(0, 0, 10);
glEnd();
shader->disable();
// Mise à jour de l'écran.
glFlush();
SDL_GL_SwapBuffers();
} |
Partager