SoloCodigo

Programación Específica => Programación de Videojuegos => OpenGL => Mensaje iniciado por: mancemo en Viernes 22 de Octubre de 2010, 22:26

Título: error en opengl
Publicado por: mancemo en Viernes 22 de Octubre de 2010, 22:26
buenas tardes, estoy haciendo una aplicacion en opengl utilizando visual c++ 2008, el cual anexo


#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <C:Program FilesMicrosoft Visual Studio 9.0VCincludegl.h>
#include <C:Program FilesMicrosoft Visual Studio 9.0VCincludeglu.h>
#include <C:Program FilesMicrosoft Visual Studio 9.0VCincludeglaux.h>
#include<C:Program FilesMicrosoft Visual Studio 9.0VCincludeglut.h>

#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "GlAux.Lib")
#pragma comment(lib, "glu32.lib")
#pragma comment(lib, "glut32.lib")

GLfloat angulo=360;


void funcionDeReescalado(GLsizei w, GLsizei h)
{
   glMatrixMode (GL_PROJECTION);   
   glLoadIdentity();
   //glFrustum (-1.0, 1.0, -1.0, 1.0, 2.0, 10.0);
   gluPerspective(90.0, (float)w/(float)h,2.0,7.0);

   glViewport (0, 0, w, h);
   glMatrixMode (GL_MODELVIEW);
}

void funcionDePista (void)
{
   
   //glClearColor(0.5, 0.5, 0.5, 1.0);
   glClear (GL_COLOR_BUFFER_BIT);

   glLoadIdentity();
   
   glColor3f (0.0, 0.0, 0.0);
   glTranslatef (0.0, 0.0, -5.0);
      
   glBegin(GL_LINES);
   {
      glVertex3f(10.0f, -2.5f, 0.0f);
      glVertex3f(-10.0f, -2.5f, 0.0f);
   }
   glEnd();

   glFlush();
   glutSwapBuffers();
}

void funcionDePintado (void)
{
   glClearColor(0.5, 0.5, 0.5, 1.0);
   glClear (GL_COLOR_BUFFER_BIT);

   glLoadIdentity();

   glTranslatef (0.0, 0.0, -5.0);
   glRotatef(angulo, 0.0,0.0,1.0);

   glColor3f (0.0, 0.0, 0.0);
   glutSolidSphere(0.3,10,10);

   glFlush();
   glutSwapBuffers();
}

void funcionIdle()
{
   angulo-=10;
   if(angulo<=0) angulo=360;

   Sleep(50);

   
   //funcionDePista();
   funcionDePintado();
}
int main(int argc, char **argv)
{
   glutInit (&argc, argv);
   glutInitDisplayMode (GLUT_RGB | GLUT_DOUBLE );
   glutInitWindowPosition (200,200);
   glutInitWindowSize (800, 300);
   glutCreateWindow ("avion");
   glutReshapeFunc(funcionDeReescalado);
   glutDisplayFunc(funcionDePista);
   glutIdleFunc(funcionIdle);
   glutDisplayFunc(funcionDePintado);
   glutMainLoop();

   return 0;
}

el lio es que deberia salir una linea horizontal y la esfera, pero unicamente me muestra la esfera, si alguien me puede ayudar a ver que estoy haciendo mal

gracias