como sabreis por otros post estoy dandole un poco de caña a opengl, he estado buscando tutoriales de como inicializar una ventana para opengl sin glut, pero no encuentro nada, siempre vienen los ejemplos con glut, ¿alguien sabe algun sitio donde venga un tutorial?
saludos
bueno al final lo acabe encontrado, ¿donde? donde esta todo :P
http://www.codesampler.com/linuxsrc.htmsaludos
pd: lo pongo por si a alguien le pudiera parecer interesante
Yo tambien ando haciendo lo mismo...yo tampoco uso glut..
lo que hago es hago la ventana con sdl y luego utilizo
Opengl con las librerias gltext.h,glu.h y gl.h..y eso...
sin e dicho algo mal son errores del novato....
Aprovecho para recomendar
GLFW, un envoltorio plataforma muy ligero y simple para OpenGL (muerte a Glut!!). Es lo que vengo utilizando para mis experimentos OpenGL en PC/Mac
Entonces solo sirve para crear la ventana y utilizar las
posibilidades que tiene GL.h(por lo que he visto,no??)!!
Parece bueno...creo que lo utilizare...
Pues segun mi humilde opinion la mejor combinacion es OpenGL + SDL. Puedes mirar los ejemplos que bienen son bastante autoexplicativos... libsdl.org.
Ahh...e estado probandolo y me he bajado la version para Dev-Cpp
y e leido sobre GLFW y rectifico ya que no me deja editar el post
anterior que es la libreria de windows pero mas predecible o algo
asi no?y Gl.h tambien!!
Creo,nose corrijeme si me equivoco!!
Salu2
Cita de: "samsaga2"Pues segun mi humilde opinion la mejor combinacion es OpenGL + SDL. Puedes mirar los ejemplos que bienen son bastante autoexplicativos... libsdl.org.
Creo que es una de las mejoras opciones...sobre todo por portabilidad....
aprovecho el mismo post para preguntar donde me puedo bajar los archivos necesarios para compilar opengl en linux ya que por defecto no viene
saludos
perdonar puse mal la pregunta, no es compilar el opengl en linux, es compilar algo que yo haga usando opengl, por defecto en el ubuntu no existe ni siquiera el gl/gl.h y en los paquetes no he visto nada relacionado con opengl
Cita de: "zupervaca"... en el ubuntu no existe ni siquiera el gl/gl.h y en los paquetes no he visto nada relacionado con opengl
Umm, si usas Ubuntu igual tienes que usar el apkget o como se diga de la debian ...
Pero yo en la Suse lo encontre por "mesa" en los paquetes. Pega una ojeada y comentas ...ç
ata lego
no he encontrado nada de lo que me decias por el instalador de paquetes, con lo que lo estoy instalando todo (nooo), alguno tendra que ser y si no mal rollo <_<
saludos
que te faltan...los headers?
pues me da error de que no estan definidas las funciones, constantes y demas del opengl, con lo que los .h no estan, no se si valen los que tengo en windows y despues tampoco sabria donde meterlas ya que en linux cuando pones <> en vez de "" hace caso al makefile o como va?
lo he instalado todo y sigue sin rular
Cita de: "zupervaca"pues me da error de que no estan definidas las funciones, constantes y demas del opengl, con lo que los .h no estan, no se si valen los que tengo en windows y despues tampoco sabria donde meterlas ya que en linux cuando pones <> en vez de "" hace caso al makefile o como va?
lo he instalado todo y sigue sin rular
Los .h suelen estar en /usr/include. En concreto, gl.h y glut.h deberian estar en ese path bajo un subdirectorio llamado GL, mira alli a ver si tienes lo tienes...aunque lo dudo porque cuando indicas un
el compilador por defecto buscara en ese ruta(o las que tenga asignadas), no puedo asegurarte al 100% pero en todas las distribuccion que he trabajado... los .h esta en ese path que te dije.
En el makefile, si utilizas el parametro del compilador -I path... tambien buscara en ese path los headers dados... con -L le puedes indicar path donde tienes librerias (aunque yo prefiero usar aqui rutas absolutas modificadas con variables dentro del makefile...en gustos colores).
Y lo mismo en esta pagina..encuentras lo que probablemente no tengas (lib+headers):
Mesa
suerte
Tal vez te falte instalar paquete(s) -dev.
En Debian viene en xlibmesa-gl-dev
Muy buenas.
Se que hace mucho tiempo que se inicio este post, y me lo meti en favoritos pq sabía que algun día lo usaría. Pues bien, el día ha llegado, y me apena mucho tener que reabrirlo y tener que molestarlos.
Como ya comente hace tiempo tengo intenion de portar mi pequeño juego a linux...mas como una forma de aprender como se hace que por el hecho de necesitarlo. He seguido este post desde el principio, bajandome el ejemplo de codesampler, e instalandome las librerias que citais, pero no ha habido manera.....
Como el codigo lo teneis en codesampler prefiero no ponerlo aqui, pero si alguien cree que es necesario no tengo problema en ponerlo. Sin embargo, este es el resultado de mi compilacion:
jorge@debian:~$ cd pruebas
jorge@debian:~/pruebas$ ls -l
total 16
-rw-r--r-- 1 jorge jorge 12725 2005-10-13 02:05 ventana.cpp
jorge@debian:~/pruebas$ g++ -o ventana ventana.cpp
/tmp/cci8YrNM.o(.text+0x22): En la función `main':
: undefined reference to `XOpenDisplay'
/tmp/cci8YrNM.o(.text+0x7a): En la función `main':
: undefined reference to `glXQueryExtension'
/tmp/cci8YrNM.o(.text+0x127): En la función `main':
: undefined reference to `glXChooseVisual'
/tmp/cci8YrNM.o(.text+0x156): En la función `main':
: undefined reference to `glXChooseVisual'
/tmp/cci8YrNM.o(.text+0x1b3): En la función `main':
: undefined reference to `glXCreateContext'
/tmp/cci8YrNM.o(.text+0x22f): En la función `main':
: undefined reference to `XCreateColormap'
/tmp/cci8YrNM.o(.text+0x2d1): En la función `main':
: undefined reference to `XCreateWindow'
/tmp/cci8YrNM.o(.text+0x31a): En la función `main':
: undefined reference to `XSetStandardProperties'
/tmp/cci8YrNM.o(.text+0x33a): En la función `main':
: undefined reference to `glXMakeCurrent'
/tmp/cci8YrNM.o(.text+0x350): En la función `main':
: undefined reference to `XMapWindow'
/tmp/cci8YrNM.o(.text+0x36c): En la función `main':
: undefined reference to `XNextEvent'
/tmp/cci8YrNM.o(.text+0x4b2): En la función `main':
: undefined reference to `glViewport'
/tmp/cci8YrNM.o(.text+0x4bf): En la función `main':
: undefined reference to `XPending'
/tmp/cci8YrNM.o(.text+0x500): En la función `init()':
: undefined reference to `glClearColor'
/tmp/cci8YrNM.o(.text+0x50c): En la función `init()':
: undefined reference to `glEnable'
/tmp/cci8YrNM.o(.text+0x518): En la función `init()':
: undefined reference to `glMatrixMode'
/tmp/cci8YrNM.o(.text+0x51d): En la función `init()':
: undefined reference to `glLoadIdentity'
/tmp/cci8YrNM.o(.text+0x549): En la función `init()':
: undefined reference to `gluPerspective'
/tmp/cci8YrNM.o(.text+0x7f7): En la función `loadTexture()':
: undefined reference to `glGenTextures'
/tmp/cci8YrNM.o(.text+0x80c): En la función `loadTexture()':
: undefined reference to `glBindTexture'
/tmp/cci8YrNM.o(.text+0x828): En la función `loadTexture()':
: undefined reference to `glTexParameteri'
/tmp/cci8YrNM.o(.text+0x844): En la función `loadTexture()':
: undefined reference to `glTexParameteri'
/tmp/cci8YrNM.o(.text+0x88d): En la función `loadTexture()':
: undefined reference to `glTexImage2D'
/tmp/cci8YrNM.o(.text+0x8a2): En la función `render()':
: undefined reference to `glClear'
/tmp/cci8YrNM.o(.text+0x8ae): En la función `render()':
: undefined reference to `glMatrixMode'
/tmp/cci8YrNM.o(.text+0x8b3): En la función `render()':
: undefined reference to `glLoadIdentity'
/tmp/cci8YrNM.o(.text+0x8d2): En la función `render()':
: undefined reference to `glTranslatef'
/tmp/cci8YrNM.o(.text+0x8ff): En la función `render()':
: undefined reference to `glRotatef'
/tmp/cci8YrNM.o(.text+0x92c): En la función `render()':
: undefined reference to `glRotatef'
/tmp/cci8YrNM.o(.text+0x941): En la función `render()':
: undefined reference to `glBindTexture'
/tmp/cci8YrNM.o(.text+0x95d): En la función `render()':
: undefined reference to `glInterleavedArrays'
/tmp/cci8YrNM.o(.text+0x979): En la función `render()':
: undefined reference to `glDrawArrays'
/tmp/cci8YrNM.o(.text+0x998): En la función `render()':
: undefined reference to `glXSwapBuffers'
/tmp/cci8YrNM.o(.text+0x99f): En la función `render()':
: undefined reference to `glFlush'
collect2: ld devolvió el estado de salida 1
Solo comentar que no es problema de librerias, tengo la carpeta GL en su sitio y contiene tanto gl.h como glu.h como glx.h, todas en minusculas y accesibles......el compilador no se queja de encontrar los archivos, y es lo q me molesta.....
A ver si me pueden echar un cable, GRACIAS ^^
Pues va a ser que si es problemas de librerias, no es por nada :P
Te has olvidado de decirle al compilador con que librerias enlazar :)
g++ -o ventana ventana.cpp -L/usr/X11R6/lib -lx11 -lXext -lm -lgl -lglut
Te lo he puesto de memoria, asi que las rutas o nombres de librerias (ojo mayusculas) pueden no ser correctos. Como poco, te falla al linkar con Xlib (-lX11) y con opengl. Ya no me acuerdo si la libreria opengl en Linux era -lgl o -lmesagl o similares...
Vale, muchas gracias, al final me funciono ^_^
Por si alguien le interesa el comando final fue:
g++ -o ventana ventana.cpp -L/usr/X11R6/lib -lX11 -lXext -lm -lGL -lGLU
GRACIAS
consejo, usen SDL :P