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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| #include <iostream>
#include <SDL/SDL.h>
#include <GL/gl.h>
#include <GL/glu.h>
using namespace std;
using namespace std;
int main(int argc, char *argv[])
{
if( SDL_Init(SDL_INIT_VIDEO) < 0)
{
cerr << "Echec SDL_Init : " << SDL_GetError() << endl;
return (EXIT_FAILURE);
}
atexit(SDL_Quit);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
SDL_Surface *ecran = SDL_SetVideoMode(800, 600, 32, SDL_OPENGL);
if(ecran==NULL)
{
cerr << "Echec lors de la création de fenêtre:" << SDL_GetError() << endl;
return (EXIT_FAILURE);
}
int valeurBuffer;
if(SDL_GL_GetAttribute(SDL_GL_DOUBLEBUFFER, &valeurBuffer)<1)
{
cerr << "Echec de recuperation du parametre SDL_GL_DOUBLEBUFFER : " << SDL_GetError() << endl;
return (EXIT_FAILURE);
}
if(valeurBuffer!=1)
{
cerr << "Erreur : SDL_GL_DOUBLEBUFFER inactif" << endl;
return (EXIT_FAILURE);
}
bool continuer = true;
SDL_Event event;
while(continuer)
{
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer=false;
}
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glColor3ub(255, 0, 0); glVertex2d(-0.75, -0.75);
glColor3ub(0, 255, 0); glVertex2d(0, 0.75);
glColor3ub(0, 0, 255); glVertex2d(0.75, -0.75);
glEnd();
glFlush();
SDL_GL_SwapBuffers();
}
return EXIT_SUCCESS;
} |
Partager