Dev - C++ - OPENGL

 
Vista:

OPENGL

Publicado por Omar (1 intervención) el 09/10/2007 04:05:55
Hola a todo el mundo, estoy tratando de trabajar open gl en windows, y el IDE elegido fue el wx-devcpp, (el hijo del bloodshed-dev++), y quiero hacer funcionar programas como este:

#include <GL/glut.h>
//#include <unistd.h>

// Medidas del cuerpo
#define CUERPO_ALTO 4.0
#define CUERPO_ANCHO 2.5
#define CUERPO_LONGITUD 1.0
#define BRAZO_ALTO 3.5
#define BRAZO_ANCHO 1.0
#define BRAZO_LONGITUD 1.0
#define PIERNA_ALTO 4.5
#define PIERNA_ANCHO 1.0
#define PIERNA_LONGITUD 1.0
#define CABEZA_RADIO 1.1

void display(void)
{
glDepthFunc(GL_LEQUAL); // Activamos el el Z-Buffer
glEnable(GL_DEPTH_TEST);
glClearColor(0.0,0.0,0.0,0.0); // Borramos el buffer de color y el Z-Buffer
glClearDepth(1.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_PROJECTION); // Proyección perspectiva. El ángulo de
glLoadIdentity();
gluPerspective(60.0,1.0,1.0,100.0); // Proyección perspectiva. El ángulo de 60 grados, la razón ancho/alto es 1, la distancia z=100.0

glMatrixMode(GL_MODELVIEW);
glTranslatef(0.0,0.0,-16.0);
// Dibujamos el cuerpo
glTranslatef(0,CUERPO_ALTO/2,0);
glPushMatrix();
glScalef(CUERPO_ANCHO,CUERPO_ALTO,CUERPO_LONGITUD);
glColor3f(0.0,0.3,0.8);
glutSolidCube(1);
glPopMatrix();
// Dibujamos el brazo derecho
glPushMatrix();
glTranslatef(-(CUERPO_ANCHO)/2,(CUERPO_ALTO-BRAZO_ALTO)/2,0);
glTranslatef(0,BRAZO_ALTO/2,0);
glRotatef(-30,0,0,1);
glTranslatef(0,-BRAZO_ALTO/2,0);
glPushMatrix();
glScalef(BRAZO_ANCHO,BRAZO_ALTO,BRAZO_LONGITUD);
glutSolidCube(1);
glPopMatrix();
// ya tenemos el brazo... la mano
glTranslatef(0,-(BRAZO_ALTO+BRAZO_ANCHO)/2,0);
glColor3f(1,0.6,0.6);
glScalef(BRAZO_ANCHO,BRAZO_ANCHO,BRAZO_LONGITUD);
glutSolidCube(1);
glPopMatrix();
// Dibujamos el brazo izquierdo
glColor3f(0.0,0.3,0.8);
glPushMatrix();
glTranslatef((CUERPO_ANCHO)/2,(CUERPO_ALTO-BRAZO_ALTO)/2,0);
glTranslatef(0,BRAZO_ALTO/2,0);
glRotatef(30,0,0,1);
glTranslatef(0,-BRAZO_ALTO/2,0);
glPushMatrix();
glScalef(BRAZO_ANCHO,BRAZO_ALTO,BRAZO_LONGITUD);
glutSolidCube(1);
glPopMatrix();
// ya tenemos el brazo... la mano
glTranslatef(0,-(BRAZO_ALTO+BRAZO_ANCHO)/2,0);
glColor3f(1,0.6,0.6);
glScalef(BRAZO_ANCHO,BRAZO_ANCHO,BRAZO_LONGITUD);
glutSolidCube(1);
glPopMatrix();
//Dibujamos la pierna derecha
glColor3f(0.0,0.3,0.8);
glPushMatrix();
glTranslatef(-(CUERPO_ANCHO-PIERNA_ANCHO)/2,-(CUERPO_ALTO+PIERNA_ALTO)/2,0);
glPushMatrix();
glScalef(PIERNA_ANCHO,PIERNA_ALTO,PIERNA_LONGITUD);
glutSolidCube(1);
glPopMatrix();
// ahora el píe
glTranslatef(0,-(PIERNA_ALTO+PIERNA_ANCHO)/2,PIERNA_LONGITUD);
glColor3f(0.3,0.4,0.4);
glScalef(PIERNA_ANCHO,PIERNA_ANCHO,PIERNA_LONGITUD*2);
glutSolidCube(1);
glPopMatrix();
//Dibujamos la pierna izquierda
glColor3f(0.0,0.3,0.8);
glPushMatrix();
glTranslatef((CUERPO_ANCHO-PIERNA_ANCHO)/2,-(CUERPO_ALTO+PIERNA_ALTO)/2,0);
glPushMatrix();
glScalef(PIERNA_ANCHO,PIERNA_ALTO,PIERNA_LONGITUD);
glutSolidCube(1);
glPopMatrix();
// ahora el píe
glTranslatef(0,-(PIERNA_ALTO+PIERNA_ANCHO)/2,PIERNA_LONGITUD);
glColor3f(0.3,0.4,0.4);
glScalef(PIERNA_ANCHO,PIERNA_ANCHO,PIERNA_LONGITUD*2);
glutSolidCube(1);
glPopMatrix();
// Dibujamos la cabeza
glColor3f(1,0.6,0.6);
glPushMatrix();
glTranslatef(0,CUERPO_ALTO/2 + CABEZA_RADIO*3/4,0);
glutSolidSphere(CABEZA_RADIO,10,10);
glPopMatrix();
glFlush();
sleep(20);
exit(0);
}
int main(int argc, char ** argv)
{
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA | GLUT_DEPTH);
glutInitWindowPosition(20,20);
glutInitWindowSize(500,500);
glutCreateWindow(argv[0]);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}


Este funciona en linux, pero no lo he podido hacer funcionar con el wxdev-cpp, si alguien me puede ayudar, se lo agradeceré mucho.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder