2010-06-14 9 views
20

Come OpenGL su piattaforma Linux senza sistema X-Window, posso inviare OpenGL Graphics direttamente al dispositivo Framebuffer?Utilizzo di OpenGL senza sistema X-Window

C'è un progetto denominato DirectFB (Direct FrameBuffer). Con DirectFB possiamo farlo, ma DirectFB ha bisogno di driver per ogni hardware e voglio utilizzare una scheda grafica che abbia solo un driver Linux.

+2

Perché vuoi evitare X? Se hai bisogno di OpenGL hai davvero bisogno di X ... Se è solo "Voglio che vada il più veloce possibile" non hai bisogno di liberarti di X, semplicemente non avviare un compositore o un ambiente desktop e solo eseguire la tua app in X. Anche se è "I want speed" X è molto improbabile che sia il collo di bottiglia dal momento che il rendering DRI praticamente lo ignora del tutto. – Spudd86

+3

Sai, quando si avvia xi ci vuole un sacco di secondi per caricarlo e non è adatto per piattaforme embedded – user366250

+0

correlati http://stackoverflow.com/questions/3326641/opengl-without-x-org-in-linux –

risposta

3

Come hai detto, hai bisogno di un autista per farlo. Il 99,9% di tutti i driver grafici Linux utilizza X11, quindi, a meno che non si disponga di un driver OpenGL DirectFB per l'hardware, si è bloccati a utilizzare X11.

+0

my il chipset video è Intel GM855, questo chipset ha un normale driver Linux per X. potrebbe essere utilizzato con DirectFB – user366250

+0

Secondo http://www.directfb.org/index.php?path=Projects%2FDirectFBGL, no. –

+0

quindi cosa posso fare? hai visto MyOS X-Less? http://www.geocities.com/ze_aks/myos.html – user366250

0

Io uso il SDL (Simple Direct Media Layer) per la programmazione OpenGL in Linux. Questo site ha alcune belle esercitazioni per farti configurare. Uno dei vantaggi dell'utilizzo di SDL è che verrà eseguito il porting su tutte le piattaforme, quindi una volta eseguito qualcosa su Linux, verrà trasferito direttamente a Windows fino a quando l'SDL verrà installato lì.

+0

Conosco SDL ma SDL in esecuzione in X Window e non solo con il dispositivo Framebuffer – user366250

+0

Ottenuto, non ho capito che non è possibile utilizzare X. – Rich

0

È possibile utilizzare Mesa per il rendering del software basato su framebuffer.

+0

Come?! È accelerato l'hardware ?! – user366250

+0

@ user366250: No. * Software * rendering. – genpfault

+0

Mesa è sia Hardware che Software –

8

Ecco come ho fatto nel mio Ubuntu 11.04 in dettaglio: 1- Installare le dipendenze usando il comando:

sudo apt-get install xutils-dev libpciaccess-dev x11proto-dri2-dev x11proto-gl-dev libxdamage-dev libxfixes-dev 

2- La libreria mesa ha bisogno della versione di libdrm> = 2.4.24 che non è disponibile in Ubuntu 11.04 re pository (vecchia versione è disponibile) in modo da avere a scaricare il sorgente e costruire usando i seguenti comandi:

./configure 
make 
make install 

3-Scarica libreria mesa e quindi compilare utilizzando i seguenti comandi: ./configure --prefix = install_directory

make realclean 
make linux-fbdev 
sudo make install 

fare attenzione quando si sceglie l'install_directory in modo da non sovrascrivere biblioteca mesa del sistema. dopo aver compilato l'applicazione utilizzando le opzioni: -lGL -lOSMesa -ldl -L'install_directory/lib' -I'install_directory/include'