Autore Topic: Esempio QT e OpenGL  (Letto 1291 volte)

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Esempio QT e OpenGL
« il: 09 Gennaio 2009, 19:55:06 »
A forza di parlare di OpenGL, ho dato un'occhiata all'esempio GambasGears incluso in Gambas2, anche in previsione di uno studio più serio per una possibile implementazione in pgDesigner.

Ho notato che l'esempio di basa sulla libreria "gb.sdl" che non funziona con QT.
A questo punto, ho provato ad usare invece la libreria "gb.qt.opengl", e di conseguenza ho fatto le opportune modifiche all'esempio.

Ovviamente non mi sono messo a studiare a fondo i vari metodi, in particolare l'evento che permette all'immagine di interagire con il mouse in modo congruo, ma ad ogni modo funziona.

Rispetto all'esempio originale, il movimento degli ingranaggi è gestito da un timer, a causa del fatto che con la libreria qt questo non viene gestito autonomamente.

Comunque, in allegato, invio il file compresso del progettino.

Ciao!

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Esempio QT e OpenGL
« Risposta #1 il: 09 Gennaio 2009, 23:08:38 »
Bravissimo!
Anche se, con tutte quelle formule, mi viene il mal di capo solo a dare un'occhiata al codice!  :-?
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Esempio QT e OpenGL
« Risposta #2 il: 09 Gennaio 2009, 23:30:37 »
Potresti buttare giù una mini-mini-mini guida indicativa e qualcuno potrebbe ampliarla....o potesti usare il wiki....

purtroppo non ho il 3D alla scheda video altrimenti darei un'occhiata all'esempio....

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Esempio QT e OpenGL
« Risposta #3 il: 10 Gennaio 2009, 15:17:47 »
Per leo:

ma quali formule? mica sono mie... :-)
scherzi a parte, erano parte dell'esempio originale.

Per ceskho:

a prescindere, ma quale guida vuoi che scriva?
se devo dirla tutta, quel poco di studio che ho fatto, è stato più sul porting in qt che altro; da quello che ho visto (ho dato un occhio anche alla doc su wikipedia), opengl è una nella gatta da pelare. Sicuramente mi risolverebbe parecchi problemi che ho avuto con la parte grafica di pgDesigner, però penso che un bel mal di testa non me lo leva nessuno... :-)

P.S.: riguardo al nostro wiki, ho qualcosa per implementarlo (parlando in generale di Gambas), però mi ci devo mettere, e devo trovare il tempo e la pazienza di farlo.

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Esempio QT e OpenGL
« Risposta #4 il: 17 Gennaio 2009, 00:08:13 »
cavolo con questo post mi hai fatto venir voglia di capirci qualcosa di + su opengl!!!!!!
ho fatto un po di ricerca su internet è ho trovato una semplice miniguida alle operazioni essenziali in opengl ma naturalmente con il C++.
notando che vi sono molte similitudini tra il codice C++ e quello gambas (almeno per le funzioni opengl) ho iniziato a trasportare la guida da C++ a Gambas

lascio qui le prime due lezioni, se la cosa sembra interessare continuero con le altre lezioni della guida  :lol:

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Esempio QT e OpenGL
« Risposta #5 il: 19 Gennaio 2009, 00:05:57 »
Si, anche io, tra un modulo e una classe per pgDesigner, e invece di andare a dormire la notte, mi stò documentando sull'opengl.
In effetti, stò provando a farlo funzionare, trasformando proprio alcuni esempi in C++, trovati in giro.
Devo dire che non è proprio una semplice libreria, che si può digerire in due minuti... La logica è un pò simile al Draw di Gambas, e ad oggetti simili in altri linguaggi ma, a quando vedo, più che libreria è un linguaggio vero e proprio, molto veloce, ma parecchio complesso, e necessità di una buona conoscenza di tecnologia grafica e... molta matematica e algebra...

Per la verità, il mio interesse primario, e di poter gestire semplici disegni 2D, magari interattivi... vedremo... è sempre un problema di tempo...

Comunque, se non fosse per la lentezza delle librerie di Gambas, l'idea forse non mi sarebbe neanche venuta... Esiste un qualche collo di bottiglia, nel collegamento tra Gambas e le librerie GTK/QT, solo che per capire dove, ci vorrebbe troppo tempo...

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Esempio QT e OpenGL
« Risposta #6 il: 19 Gennaio 2009, 19:43:38 »
utilizzare opengl per il disegno 2D non sembra troppo complicato, soprattutto grazie alla funzione apposita che permette di ignorare la terza dimensione, sicuramente molto più complesso potrebbe essere interagire con il disegno.

oggi ho postato in area down load le prime 8 lezioni della gida nel caso servisse a qualcuno che si vuole cimentare con le opengl

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Esempio QT e OpenGL
« Risposta #7 il: 22 Gennaio 2009, 10:03:03 »
Riguardo l'interazione con il disegno, credo che possa essere semplicemente fatta (è un eufemismo ovviamente...), come ho fatto con la DrawingArea in pgDesigner ovvero, per tutti gli oggetti inseriti tocca memorizzarsi le coordinate, intercettare il punto dove si clicca con il mouse, e calcolare quale oggetto si è puntato.
La libreria Gambas per QT/OpenGL offre un oggetto simile, con tutti i metodi e gli eventi standard, di qualunque altro oggetto grafico; a questo punto non credo sia diversa la logica da implementare.