«[Figlio dell'uomo] Porgi l'orecchio e ascolta le parole di KGB
e applica la tua mente alla SUA istruzione
» Pv. 22,17

Qui si straparla di vari argomenti:
1. Il genere dei pezzi è segnalato da varie immagini, vedi Legenda
2. Istruzioni per i nuovi lettori (occasionali e non) qui
3. L'ultimo corto è questo

sabato 5 settembre 2015

KGB vs la OpenGL (2/??)

Terzo giorno
Forse il giorno dopo (ma non ne sono sicuro) decisi di ritentare.
Ricontattai il solito amico con l'idea, non tanto di rompergli le scatole chiedendogli la soluzione di specifici problemi tecnici, quanto di fare il punto della situazione e chiarire, a me per primo, cosa avevo fatto e come mi conveniva procedere.

Ecco cosa gli scrissi, salto i convenevoli (in realtà solo “Ciao”!!!):
Ti faccio il punto della situazione sia per avere tuoi utili commenti/suggerimenti che per chiarirmi per me alcune problematiche.
Dunque recentemente mi è venuta voglia di giocare con le OpenGL in C. Il C è stato il mio secondo linguaggio di programmazione ma non l'adopero da decenni. All'epoca non c'erano gli strumenti di adesso e per compilare (comunque mai cose complesse) usavo la CLI.
Sono partito dal primo sito suggeritomi da Google e che mi pareva pure ben fatto:
http://www.opengl-tutorial.org
A questa pagina http://www.opengl-tutorial.org ci sono anche le istruzioni per compilare e building tutto il codice. Ovviamente io ho seguito le istruzioni per linux che hanno funzionato abbastanza bene: per riuscire a COMPILARE TUTTO ho solo dovuto installare un paio di librerie evidentemente non incluse nella mia distribuzione di Mint...
Esatto! C'è una procedura che compila i sorgenti di TUTTI i tutorial e questa mi ha funzionato e i due o tre esempi che ho provato funzionavano realmente.
Allora perché io ho tutti quei problemi con librerie mancanti quando provavo a compilare per conto mio? Questa domanda ha da subito iniziato a girarmi per il cervello ma a causa della mia stolida pertinacia non ho voluto rifletterci cercando invece di installare le varie librerie mancanti con alterni successi.
Alcune librerie, magari presenti in Synaptic, non erano aggiornate altre proprio assenti. Una l'ho dovuto compilare a mano ma l'installazione mi ha copiato le librerie compilate in una posizione non standard (/usr/local/libs invece che /usr/libs o qualcosa del genere, idem per i file header). E comunque, in teoria risolto il problema delle librerie, il compilatore continua a darmi errori che non so bene come interpretare...
Comunque, la scorsa volta, alla fine mi decisi a dare un'occhiata ai file dei tutorial e, guarda guarda, c'è una directory chiamata External dove sono presenti le 4-5 librerie non proprio standard che mi davano problemi...
Evidentemente la procedura che compila i sorgenti del tutorial, compila al volo anche queste librerie e poi linka tutto insieme...
Anzi, dalla lettura (frettolosa che feci del sito) lessi che avrei dovuto fare i miei esperimenti in una directory chiamata playground dove, di volta in volta avrei dovuto copiarci (e manipolare liberamente) il sorgente dei vari tutorial...
Adesso suppongo che ci fosse un'opzione "make playground" o qualcosa del genere per compilare il sorgente senza preoccuparsi delle librerie (che sarebbero state compilate e linkate automaticamente). Sul momento l'idea mi sembrò complicata (dopotutto non sapevo del problema delle librerie e pensavo di averle già tutte installate nel sistema) e procedetti come ben sai...

Mi cercai un'IDE ma scartai QT Creator perché i 30 Mb del "piccolo installatore" mi sembravano troppi e poi non mi piacevano tutte le domande su uso e license.
Provai Anjuta che però, anche se leggero come piace a me, da diversi anni ormai non sembra aggiornato ma, soprattutto, è totalmente privo di documentazione.
Poi mi sono rivolto a te che mi hai rimandato su QT Creator. Come ben sai, a parte i problemi con la IDE (che non sembra troppo stabile anche leggendo in rete), ho sbattuto la testa sulle librerie e i file include. Più o meno avevo messo le cose a posto (almeno apparentemente!) ma avevo comunque degli errori di compilazione chiaramente dovuti a problemi con le dette librerie...
Adesso devo quindi decidere come procedere. Tu hai suggerimenti?
1. Un'opzione è continuare a sbattere la testa cercando di sistemare l'ambiente di sviluppo in QT Creator.
2. Un'altra è quella di rileggere le istruzione del sito e compilare i miei esperimenti basandomi sull'ambiente di sviluppo già pronto.
3. analizzare la procedura di installazione/compilazione dei tutorial per capire cosa sto facendo io di sbagliato. (Mi viene ora il dubbio che io abbia dei problemi perché le librerie che adopero siano più RECENTI di quelle del tutorial!)
In attesa di tue notizie opto per l'opzione 2 che mi sembra la via più ragionevole e, probabilmente, facile...
Grazie per l'aiuto!
KGB
PS: devo trovare un'altra IDE però. Ho sentito parlare bene di KDevelop ma la K mi fa pensare che stia per KDE con tutto quel che ne consegue...

Quindi tu cosa mi consigli di fare?


Come scritto nell'epistola qui sopra mi ero iniziato a domandare come mai lo script del sito OpenGL Tutorial riusciva a compilare tutto senza impuntarsi lamentandosi per le librerie mancanti. Evidentemente qualche giorno prima avevo dato una veloce occhiata agli archivi e alle cartelle scaricate notando quanto riportato nell'epistola...
E infatti, senza attendere la risposta del mio amico, gli scrissi una nuova epistola:
Aggiornamento:
Rileggendo le istruzioni sul sito ho trovato anche le indicazioni su come compilare usando QT Creator. In pratica basta importare un file chiamato CMakeLists.txt e tutto viene settato per bene.
Ho compilato (di nuovo) tutto con QT e, a parte pochi Warning, è andato tutto bene...
Ora posso provare a fare le mie modifiche!
Il triangolo dell'esempio 2 diverrà un quadrato!!
Sal.
KGB


Finalmente avevo risolto i problemi tecnici e potevo concentrarmi sul corso di introduzione alla OpenGL. Ero tutto entusiasta e convinto di non avere problemi.
Il corso infatti segue un approccio molto pratico che, normalmente, mi è congeniale... eppure (ancora il mio amico non mi aveva dato segni di vita):
Non mi riesce!!
(è colpa del tutorial)
il problema è che l'esempio del triangolo è troppo stupido: alla fine si chiama una funzione della OpenGL a cui si passa il vettore delle coordinate ma anche la costante GL_TRIANGLES e questo mi pota l'ultimo punto.
Devo aspettare di trovare un esempio più complesso per vedere come lo gestisce e poi potrò tornare a modificare questo...
Comunque è un casino e oggettivamente questo tutorial non è chiarissimo: fa una lista delle cose da fare ma senza spiegarne a fondo la logica...
Vedremo.
Al terzo tutorial ci sono anche degli esercizi da fare, magari sono calibrati su quanto spiegato...
Sal.
KGB


Non ricordo esattamente ma dei tre esercizi da fare, forse, me ne riuscì uno mentre di un altro mi resi conto che il codice del sito non funzionava e avrei quindi dovuto aspettare di leggere almeno altri 2 o 3 esempi per trovare del codice analogo funzionante.
Frustrato, depresso e arrabbiato decisi, per quel giorno, di lasciar perdere...

Nessun commento:

Posta un commento