Newsgroup: it.comp.os.linux.development
Titolo: SDL e Qt Widget

Salve a Tutti!
E' possibile visualizzare una surface overlay della libreria SDL all'interno
di un qualsiasi widget Qt ?
Ho il problema di avere una bitmap YUV e di visualizzarla all'interno di una
finestra Qt/KDE, per il momento ho parzialmente risolto con una serie di
conversioni da YUV a RGB e poi scalando fino alla dimensione voluta, ma la
procedura e' piuttosto lenta. Con la SDL sarebbe tutto piu' veloce ma non
riesco a capire se e come e' possibile integrarla "seamless" con il Qt.
Accetto anche alternative piu' opportune alla SDL, l'importante e' riuscire
a mostrare una bitmap YUV in un widget Qt con possibilita' di scaling il
piu' velocemente possibile.
Bye

 di un qualsiasi widget Qt ?
Tempo fa avevo cercato un esempio del genere, e mi ricordo che avevo
trovato la soluzione in un plugin di "noatun" (il clone di xmms per
KDE). Il plugin era "tippercanoe" ed era all'interno di un package di
KDE... aveva un wrapper SDL per QT già prefabbricato, potresti prendere
spunto da quello.
-- 
Vanni Brutto
| email 
za...@nofesso.libero.it
      |
| irc nick Zanac    |   ICQ 18526701 |
--- remove nofesso to reply ----------
---PC powered by Linux kernel 2.4.20  
Software is like sex; it's better when
it's free. -- Linus Torvalds 

Ciao, Vanni!
Il giorno 13/07/2003 alle ore 09:29 hai scritto:
 VB> Tempo fa avevo cercato un esempio del genere, e mi ricordo che avevo
 VB> trovato la soluzione in un plugin di "noatun" (il clone di xmms per
 VB> KDE). Il plugin era "tippercanoe" ed era all'interno di un package di
 VB> KDE... aveva un wrapper SDL per QT già prefabbricato, potresti prendere
 VB> spunto da quello.
Grazie del suggerimento ma a prima vista sembrerebbe aprire una finestra
indipendente per l'output, cosa che non mi serve (guardero' meglio).
Per il momento ho utilizzato il QGLWidget e l'OpenGL per la visualizzazione,
anche se non sono riuscito ad utilizzare direttamente la bitmap YUV e ho
dovuto convertirla in RGB.
Bye

 indipendente per l'output, cosa che non mi serve (guardero' meglio).
hum... ho capito, in effetti ho riletto meglio il messaggio, non avevo
inteso bene. Quello che vuoi tu è una specie di QSDLWidget, giusto?
beh, ho messo su google (giusto per provare) la stringa "sdl inside qt"
e guarda cosa ne è venuto fuori :) :) :)
http://www.libsdl.org/cvs/qtSDL.tar.gz
Ho provato l'esempio, e funziona davvero bene (ho testato con QT 3.1.2 ed
SDL 1.2.5)... unica cosa ho dovuto ricreare il makefile usando qmake, ma
penso che se sei pratico ad usare le QT non avrai problemi ;)
-- 
Vanni Brutto
| email 
za...@nofesso.libero.it
      |
| irc nick Zanac    |   ICQ 18526701 |
--- remove nofesso to reply ----------
---PC powered by Linux kernel 2.4.20  
"C'e`  un  termine  tecnico  adatto  a
definire un programma che non rispetta
gli  standard  in quel  modo:  merda."
--Marco d'Itri 

Ciao, Vanni!
Il giorno 13/07/2003 alle ore 18:00 hai scritto:
 VB> hum... ho capito, in effetti ho riletto meglio il messaggio, non avevo
 VB> inteso bene. Quello che vuoi tu è una specie di QSDLWidget, giusto?
Esatto.
 VB> beh, ho messo su google (giusto per provare) la stringa "sdl inside qt"
 VB> e guarda cosa ne è venuto fuori :) :) :)
 VB>
 VB> 
http://www.libsdl.org/cvs/qtSDL.tar.gz
Sono due giorni che non faccio altro che cercare qualcosa su Google e non ho
trovato nulla del genere :-( e infatti anche mettendo quella stringa non
riesco a trovare quello che hai trovato tu !
Comunque, adesso qualcuno mi dica dove e' documentata la variabile di
ambiente SDL_WINDOWID che e' quello che serve per far andare la SDL
all'interno di una finestra e non in una finestra indipendente. Dopo averla
vista usata l'ho trovata nel sorgente ma nella documentazione gli unici
riferimenti sono a varie fix sull'uso di questa variabile, hai voglia a
cercarla !
Bye

 all'interno di una finestra e non in una finestra indipendente.
'fettivamente ho dato un'occhiata veloce alla guida SDL... e
confermo: non c'è documentazione al riguardo :-\ Poco male, l'importante
è che esista e che l'esempio funziona :)
buona programmazione!
byeZ!
-- 
Vanni Brutto
| email 
za...@nofesso.libero.it
      |
| irc nick Zanac    |   ICQ 18526701 |
--- remove nofesso to reply ----------
---PC powered by Linux kernel 2.4.20  
La differenza tra un coccodrillo ed un
uomo è  che il primo, quando  ha fatto
una vaccata, piange. 

 piu' velocemente possibile.
Con SDL lo puoi fare usando il kludge WINDOWID per specificare la 
finestra da usare a SDL prima della SDL_Init(), ma e' un po' macchinoso, 
non puoi avere istanze multiple e perdi la gestione degli eventi. Io ti 
consiglierei di guardare NEI sorgenti di SDL ed usare l'estensione XV di 
X11 direttamente (a meno che non sia importante la portabilita').
Bye,
  Gabry