Newsgroup: it.comp.os.linux.development
Titolo: Programmare in openGL

Salve a tutti. Per un corso universitario, ho bisogno di programmare con 
le openGL, solo che in università usano .NET... vabbhe! Io invece a casa 
uso solo Debian, e ho qualche problema a compilare i file.
Sapreste dirmi quali pacchetti installare per poter compilare i sorgenti 
C in cui sono incluse le librerie GLUT??
Io uso eclipse come ambiente, e non ho capito come fare il makefile per 
poter compilare e buildare direttamente da li, sapreste darmi qualche 
consiglio?
Grazie mille a tutti.

 C in cui sono incluse le librerie GLUT??
apt-cache search glut :)
Credo ti servano glut-dev e glut-doc
Ciao
V.
-- 
Please notice that my e-mail address has been altered to prevent spam

 
Ciao, ho gia installato tutti i pacchetti disponibili di glut.
Ho provato a compilare da console cosi:
cc -o roto roto.c -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm
ma non trova i riferimenti a queste: -lXmu -lXi -lXext -lX11

 ma non trova i riferimenti a queste: -lXmu -lXi -lXext -lX11
Cercando libXmu.a nel contenuto dei pacchetti su 
packages.debian.org
 (oppure
apt-cache show apt-file) ho trovato che ti manca xlibs-dev, è strano che
non fosse nelle dipendenze di glut-dev ma ci sarà una ragione.
Ciao
Vincenzo


 non fosse nelle dipendenze di glut-dev ma ci sarà una ragione.
Avevo gia anche quella installata!

> non fosse nelle dipendenze di glut-dev ma ci sarà una ragione.
SDL? ;-)

 ma non trova i riferimenti a queste: -lXmu -lXi -lXext -lX11
aggiungi -L/usr/X11R6/lib
fatti un Makefile o usa autoconf/automake
IMHO sotto Linux sarà dura far andare openGL se non hai una scheda
grafica supportata bene (che sia prestazionale o no c'entra poco);
per controllare che tutto sia ok prova
	glxinfo | grep -i direct
deve dirti Yes
nel mio caso non è così e sono costretto (sul NB 800Mhz) a usare
WinMe+DevCpp per giocare con OpenGL;
se ti servisse qualche esempio fammi un fischio, non sono un'esperto ma
ho messo su qualche esempietto :-P

 ma non trova i riferimenti a queste: -lXmu -lXi -lXext -lX11
Io nel tuo caso farei (tutto su una riga):
apt-get install libxi-dev libxi6 libxmu-dev libxmu6 libxext-dev libxext6
libx11-6 libx11-dev
-- 
| Massimo ;-) -> 
http://maq.altervista.org
        |       (o_        |
|- BABYLON  5 -> 
http://babylon5.altervista.org
   |  (o-  //\   -o)  |
|- STARGATE   -> 
http://sg1screw.altervista.org
   |  (/)_ V_/_ _(\)  |
|- USSTRIBOLO -> 
http://usstribolo.altervista.org
 | POWERED BY LINUX |

 
si, ma per un progetto universitario anche se dice "no" va lo stesso 
anche se lenta. se ti accontenti di 30 fps (con la scheda video 
integrata peggiore del pianeta), penso possa andare.

 
Esatto.. è tutto ok... infatti riesco a giocare a TuxRacer per esempio 
che usa le openGL... nonostante sia una vecchia Gforce a 32 Mb...
non è la prestazione che cerco.... devo solo riuscire a compilare!!

 
Gia fatto! ho gia installato tutto l'utilizzabile!
Dovrei solo capire che opzioni usare per compilare

Ti posto tutto, il programma è una cavolata, ma sto cercando di capire 
come compilare:
#include<GL/glut.h>
#define XRES 500
#define YRES 500
float Vx_min=-1.0, Vx_max=1.0;
float Vy_min=-1.0, Vy_max=1.0;
float spin=0.0;
void init(void) {
         glClearColor(0.0, 0.0, 0.0, 0.0);
         glClear(GL_COLOR_BUFFER_BIT);
         glColor3f(1.0,1.0,1.0);
}
void display(void) {
         glClear(GL_COLOR_BUFFER_BIT);
         glPushMatrix();
         glLoadIdentity();
         glRotatef(spin,0.0,0.0,0.0);
         glBegin(GL_POLYGON);
                 glVertex2f(-0.5,-0.5);
                 glVertex2f(-0.5,0.5);
                 glVertex2f(0.5,0.5);
                 glVertex2f(0.5,-0.5);
         glEnd();
         glPopMatrix();
         glutSwapBuffers();
}
void idle(void) {
         spin += 0.125;
         glutPostRedisplay();
}
int main(int argc, char **argv) {
         glutInit(&argc, argv);
         glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
         glutInitWindowSize(XRES,YRES);
         glutCreateWindow("Cazzo");
         init();
         glutDisplayFunc(display);
         glutIdleFunc(idle);
         glutMainLoop();
         return 0;
}
Compilo cosi:
  cc -o roto roto.c -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm -L 
/usr/X11R6/lib
E questo è quello che ottengo:
/usr/X11R6/lib/libGL.a(glxext.o)(.text+0x2d): In function 
`__glXGetCurrentContext':
: undefined reference to `pthread_key_create'
/usr/X11R6/lib/libGL.a(glxext.o)(.text+0x51): In function 
`__glXGetCurrentContext':
: undefined reference to `pthread_getspecific'
/usr/X11R6/lib/libGL.a(glxext.o)(.text+0x9e): In function 
`__glXSetCurrentContext':
: undefined reference to `pthread_setspecific'
/usr/X11R6/lib/libGL.a(glxext.o)(.text+0xc0): In function 
`__glXSetCurrentContext':
: undefined reference to `pthread_key_create'
/usr/X11R6/lib/libGL.a(glthread.o)(.text+0x44): In function 
`_glthread_InitTSD':
: undefined reference to `pthread_key_create'
/usr/X11R6/lib/libGL.a(glthread.o)(.text+0xb1): In function 
`_glthread_GetTSD':
: undefined reference to `pthread_getspecific'
/usr/X11R6/lib/libGL.a(glthread.o)(.text+0xf8): In function 
`_glthread_SetTSD':
: undefined reference to `pthread_setspecific'
collect2: ld returned 1 exit status

 : undefined reference to `pthread_getspecific'
[...]
--
Matteo Settenvini
FSF Associated Member
Email : 
mat...@member.fsf.org
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d--(-) s+:- a-- C++ UL+++
P?>++ L+++>$ E+>+++ W+++ N+ o?
w--- O- M++ V? PS++ PE- Y+>++
PGP+++ t+ 5 X- R tv-(--) b+++
DI+ D++ G++ e h+ r- y?
------END GEEK CODE BLOCK------

>
Grande!! funziona!! TI ringrazio veramente tanto! Mi ha salvato da un 
impiccio veramente grosso!!
Se dovessi avere ancora bisogno posto!
Grazie mille ancora!

CarloP ha scritto:

uh, per cosě poco... ;-)

         glRotatef(spin,0.0,0.0,0.0);
Questo non va bene. I tre float rappresentano il vettore intorno al
quale avviene la rotazione, non puo` essere nullo.
Luca
-- 
Home: 
http://kronoz.cjb.net
"La teoria e` quando sappiamo come funzionano le cose ma non funzionano.
 La pratica e` quando le cose funzionano ma non sappiamo perche`.
 Abbiamo unito la teoria e la pratica: le cose non funzionano piu` e non
 sappiamo il perche`." -- A. Einstein

 
Ti ringrazio... infatti non funzionava... ma era solo un codice scritto 
alla veloce per capire come compilare sotto linux... tutto qui!

 Grazie mille ancora!
Casomai cerca di capire quali sono le librerie che mancano in caso di
errore :-)

 quale avviene la rotazione, non puo` essere nullo.
Come no? Al limite non ruota nulla :-)


In realtą non so per quale motivo, ma lasciato cosi com'era, chiaramente 
non ruotava, ma si stringeva e si allargava!

 ha scritto:

Certo. E la matrici di rotazione voleranno nel cielo insieme ai maiali.
Luca
-- 
Home: 
http://kronoz.cjb.net
Il dottore mi ha detto di smettere di fare cene intime per quattro.
A meno che non ci siamo altre tre persone.

 Certo. E la matrici di rotazione voleranno nel cielo insieme ai maiali.
ops scusa... ho confuso 1 e 0 :-)