2010-06-14 24 views
20

Cómo OpenGL en la plataforma Linux Sin el sistema X-Window, ¿puedo enviar gráficos OpenGL directamente al dispositivo Framebuffer?Uso de OpenGL sin el sistema X-Window

Hay Proyecto denominado DirectFB (Direct FrameBuffer). Con DirectFB podemos hacer esto, pero DirectFB necesita un controlador para cada hardware y quiero usar una tarjeta gráfica que solo tenga un controlador Linux.

+2

¿Por qué quieres evitar X? Si necesita OpenGL, realmente necesita un poco de X ... Si es solo "Quiero que vaya lo más rápido posible", no necesita deshacerse de X, simplemente no inicie un entorno de compositor o de escritorio y solo ejecute su aplicación dentro de X. Además, si es "Quiero velocidad", X es muy poco probable que sea el cuello de botella, ya que la representación de DRI prácticamente lo pasa por alto. – Spudd86

+3

Ya sabes, cuando inicias el xi tardas muchos segundos en cargar y no es adecuado para plataformas integradas – user366250

+0

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

Respuesta

3

Como dijo, necesita un controlador para hacer esto. El 99.9% de todos los controladores de gráficos de Linux usan X11, por lo tanto, a menos que tenga un controlador DirectFB OpenGL para su hardware, tiene que utilizar X11.

+0

mi el chipset de video es Intel GM855, este chipset tiene un controlador Linux normal para X. podría ser utilizado con DirectFB – user366250

+0

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

+0

Entonces, ¿qué puedo hacer? ¿Has visto MyOS X-Less? http://www.geocities.com/ze_aks/myos.html – user366250

0

Uso el SDL (capa de medios directos simples) para la programación de OpenGL en Linux. Este site tiene algunos buenos tutoriales para configurarlo. Una ventaja del uso de SDL es que se transferirá a través de las plataformas, por lo que una vez que se ejecute algo en Linux, se transferirá directamente a Windows, siempre que tengas instalado SDL allí.

+0

Sé que SDL pero SDL se ejecuta en X Window y no solo con el dispositivo Framebuffer – user366250

+0

Entendido, no entendí que no pudiera usar X. – Rich

0

Puede usar Mesa para la representación del software basado en framebuffer.

+0

¿Cómo? ¿Es hardware acelerado? – user366250

+0

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

+0

Mesa es hardware y software –

6

es aparentemente posible tener SDL correr sin X.

Básicamente, el núcleo debe tener soporte para framebuffer y se podía utilizar SDL en la parte superior de DirectFB.

Estos hilos están bien:

http://lists.libsdl.org/pipermail/sdl-libsdl.org/2006-October/058305.html

http://forums.libsdl.org/viewtopic.php?t=4079

+0

¿Qué biblioteca entre las propuestas arriba (directFB, SDL) proporciona la implementación/interfaz OpenGL ? Ninguno ... Mesa lo hace. – plesiv

8

Así es como lo hice en mi ubuntu 11.04 en detalle: 1- Instalar las dependencias con el comando:

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

2- La biblioteca mesa necesita versión libdrm> = 2.4.24 que no está disponible en el ubuntu 11.04 re pository (versión anterior está disponible) así que hay que descargar el código fuente y construirlo mediante los siguientes comandos:

./configure 
make 
make install 

3-Descarga biblioteca de mesa y luego compilarlo usando los siguientes comandos: ./configure --prefix = directorio_instalación

make realclean 
make linux-fbdev 
sudo make install 

debe tener cuidado al elegir el directorio_instalación para que no sobrescribir la biblioteca Mesa del sistema. después de eso compila tu aplicación usando las opciones: -lGL -lOSMesa -ldl -L'install_directory/lib' -I'install_directory/include'

Cuestiones relacionadas