/*
**-------------------------------------------------------------------
**
** Desenha 2 triangulos usando SDL 1.x
**
** ARQUIVO:
** gl_triangulo.c
**
** COMPILE EM WINDOWS:
** gcc gl_triangulo.c -o gl_triangulo -lSDL -lopengl32 -Wall
**
** COMPILE EM LINUX:
** gcc gl_triangulo.c -o gl_triangulo -lSDL -lGL -Wall
**
**-------------------------------------------------------------------
*/
#include <SDL/SDL.h>
#include <SDL/SDL_opengl.h>
#undef main
#define SIZEW 800
#define SIZEH 600
float angle_x, angle_y;
void DrawScene (void)
{
glViewport (0, 0, SIZEW, SIZEH);
glClear (GL_COLOR_BUFFER_BIT);
// 01: desenha o triangulo GIRANDO: cor laranja
//-------------------------------------------
glPushMatrix ();
glRotatef (angle_x, 1.0, 0.0, 0.0);
glRotatef (angle_y, 0.0, 1.0, 0.0);
angle_x += 0.2;
angle_y += 0.5;;
glColor3ub (255,130,30); // laranja
glBegin (GL_LINE_LOOP);
glVertex2f (0.0f, 0.5f);
glVertex2f (0.5f, -0.25f);
glVertex2f (-0.5f, -0.25f);
glEnd();
glPopMatrix ();
//-------------------------------------------
// 02: desenha o triangulo PARADO: cor branco
//-------------------------------------------
glColor3ub (200,200,200); // branco
glBegin (GL_LINE_LOOP);
glVertex2f (0.0f, 0.5f);
glVertex2f (0.5f, -0.25f);
glVertex2f (-0.5f, -0.25f);
glEnd();
//-------------------------------------------
SDL_GL_SwapBuffers ();
SDL_Delay (10);
}
int main (void)
{
SDL_Event e;
SDL_Init (SDL_INIT_VIDEO);
#ifdef _WIN32
SDL_putenv ("SDL_VIDEO_CENTERED=center");
#endif
SDL_SetVideoMode (SIZEW, SIZEH,32,SDL_OPENGL);
for (;;) {
if (SDL_PollEvent(&e) &&e.type == SDL_KEYDOWN)
break;
DrawScene ();
}
SDL_Quit();
return 0;
}