Error OpenGL - glutCreateWindow called without first calling

Tratamos sobre el manejo de APIs frecuentemente utilizadas en el desarrollo de videojuegos, como SDL, pygame o SFML.

Error OpenGL - glutCreateWindow called without first calling

Notapor lacabra25 » Mié Jun 24, 2009 3:48 pm

Hola, hoy me he puesto a comenzar a aprender un poco de OpenGL y cuando intentaba compilar un ejemplo que creaba una ventana y dibujaba un triangulo aunque compila bien al ejecutarlo me da el siguiente error:

freeglut ERROR: Function <glutCreateWindow> called without first calling 'glutInit'.

Este es el codigo:

Código: Seleccionar todo
#include <GL>
#include <stdio>
#include <stdlib>

void display(void);

int main(int argc, char *argv[]){
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
glutInitWindowPosition(20,20);
glutInitWindowSize(500,500);
glutCreateWindow(argv[0]);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}

void display(void){
glClearColor(0.0,0.0,0.0,0.0);
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-1.0,1.0,-1.0,1.0,-1.0,1.0);
glMatrixMode(GL_MODELVIEW);
glBegin(GL_TRIANGLES);
/*Dibujamos un triángulo*/
   glColor3f(1.0,0.0,0.0);
   glVertex3f(0.0,0.8,0.0);
   glColor3f(0.0,1.0,0.0);
   glVertex3f(-0.6,-0.2,0.0);
   glColor3f(0.0,0.0,1.0);
   glVertex3f(0.6,-0.2,0.0);
glEnd();
glFlush();
sleep(10);
exit(0);
}


Edito: ya consegui solucionar el problema, solo faltaba en el ejemplo llamar a la funcion glInit al comienzo del programa:

Código: Seleccionar todo
#include <GL>
#include <stdio>
#include <stdlib>

void display(void);

int main(int argc, char *argv[]){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
glutInitWindowPosition(20,20);
glutInitWindowSize(500,500);
glutCreateWindow(argv[0]);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}

void display(void){
glClearColor(0.0,0.0,0.0,0.0);
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-1.0,1.0,-1.0,1.0,-1.0,1.0);
glMatrixMode(GL_MODELVIEW);
glBegin(GL_TRIANGLES);
/*Dibujamos un triángulo*/
   glColor3f(1.0,0.0,0.0);
   glVertex3f(0.0,0.8,0.0);
   glColor3f(0.0,1.0,0.0);
   glVertex3f(-0.6,-0.2,0.0);
   glColor3f(0.0,0.0,1.0);
   glVertex3f(0.6,-0.2,0.0);
glEnd();
glFlush();
sleep(10);
exit(0);
}
Esta cuenta ahora a pasado a la cuenta jhg
Avatar de Usuario
lacabra25
 
Mensajes: 222
Registrado: Mié Abr 02, 2008 9:45 pm
Ubicación: Tenerife (España)

Notapor endaramiz » Sab Jun 27, 2009 2:17 pm

Ya sé que no es una respuesta adecuada y que puede que lo sepas. Pero, para crear la pantalla y gestionar eventos, puedes utilizar SDL.

Yo también empiezo este verano con OpenGL, pero usaré SDL para así poderme centrarme en lo que más me interesa. En los tutoriales de NeHe tampoco lo utilizan, pero suele haber un port en las descargas.

Saludos.
Avatar de Usuario
endaramiz
 
Mensajes: 283
Registrado: Vie Ago 31, 2007 9:25 am
Ubicación: Barcelona

Notapor lacabra25 » Dom Jun 28, 2009 10:50 am

endaramiz escribió:Ya sé que no es una respuesta adecuada y que puede que lo sepas. Pero, para crear la pantalla y gestionar eventos, puedes utilizar SDL.

Yo también empiezo este verano con OpenGL, pero usaré SDL para así poderme centrarme en lo que más me interesa. En los tutoriales de NeHe tampoco lo utilizan, pero suele haber un port en las descargas.

Saludos.


Si, sabia que SDL puede crear superficies con contexto GL pero como como has mencionado en los tutoriales de NeHe no lo usan, ni tampoco en ninguno de los tutoriales que he conseguido, todos los tutoriales que tengo usan la dichosa GLUT, yo tambien preferiria usar SDL ya no solo por los eventos, sino por que para dibujar las partes 2D tengo ya practica con SDL que con GLUT no la tengo, lo que no se es, una vez creada la superficie con el contexto GL, como hacer para que todo se dibuje en la superficie sin problemas y eso, si tienes algun manual que usen OpenGL junto con SDL te lo agradeceria, o algo de ayuda para al menos comenzar a usarlos juntos. Una pregunta ¿con SDL y OpenGL podria tener dos superficies (sin ser la pantalla) con contexto GL y dibujar con OpgnGL en una o en otra? no se si me explico bien, dibujar con OpenGL pero no solo en una superficie, sino en varias superficies y despues mostrarlas por pantalla, lo digo por que se me ocurrio (pensando en las peliculas estas 3D que se ven con las gafas anaglifo) en que si se podia usar OpenGL en dos superficies de SDL con camaras desde distintos puntos de vista despues se podria mezclar los bytes de las imagenes de forma adecuada en una tercera superficie y tener un videojuego en 3D que se viese con las gafas de anaglifo.

Como veo que me he enrrollado un poco, resumo, ¿algun manual, ejemplo, o algo de informacion con lo que empezar a usar OpenGL y SDL juntos?, ¿se puede tener varias superficies con contexto OpenGL y dibujar en una o en otra con OpenGL, de forma analoga a como copiamos una superficie a una u otra superficie?, tengo entendido que modelos echos con programas como blender pueden cargarse y usarse ¿sabes de algun manual para cargarlos y usarlos y moverlos y todo eso?
Esta cuenta ahora a pasado a la cuenta jhg
Avatar de Usuario
lacabra25
 
Mensajes: 222
Registrado: Mié Abr 02, 2008 9:45 pm
Ubicación: Tenerife (España)

Notapor endaramiz » Dom Jun 28, 2009 2:35 pm

lacabra25 escribió:Como veo que me he enrrollado un poco, resumo, ¿algun manual, ejemplo, o algo de informacion con lo que empezar a usar OpenGL y SDL juntos?
Yo solo miro los códigos adaptados de NeHe. Así que no están pensados para SDL. Si encuentras algo, ya lo publicarás.

lacabra25 escribió:¿se puede tener varias superficies con contexto OpenGL y dibujar en una o en otra con OpenGL, de forma analoga a como copiamos una superficie a una u otra superficie?
Hay un Flag de Surface que se llama SDL_OPENGLBLIT que no he tenido tiempo de probar. Tiene buena pinta, pero no he encontrado mucha info y encima está deprecated. Si te animas a investigar...

lacabra25 escribió:tengo entendido que modelos echos con programas como blender pueden cargarse y usarse ¿sabes de algun manual para cargarlos y usarlos y moverlos y todo eso?
Aun no he comenzado a mirar esos temas, pero en el número 25 de NeHe hace algo de eso. Aunque no sé si Blender puede exportar a ese formato. Otra opción sería mirar algún engine que supongo que hará cosas de esas de forma más sencilla.

Saludos.
Avatar de Usuario
endaramiz
 
Mensajes: 283
Registrado: Vie Ago 31, 2007 9:25 am
Ubicación: Barcelona


Volver a Sobre las bibliotecas multimedia

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

cron