linux - sistema - x.org server
Uso de OpenGL sin el sistema X-Window (5)
Aparentemente es posible tener SDL ejecutándose sin X.
Básicamente, su kernel debería tener compatibilidad con framebuffer y podría usar SDL encima de DirectFB.
Estos hilos están bien:
http://lists.libsdl.org/pipermail/sdl-libsdl.org/2006-October/058305.html
¿Cómo puedo OpenGL en la plataforma Linux sin X-Window System? ¿Puedo enviar gráficos OpenGL directamente a un dispositivo Framebuffer?
Hay proyecto llamado 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.
Así es como lo hice en mi ubuntu 11.04 en detalle: 1- Instalar las dependencias usando el comando:
sudo apt-get install xutils-dev libpciaccess-dev x11proto-dri2-dev x11proto-gl-dev libxdamage-dev libxfixes-dev
2- La librería mesa necesita la versión libdrm> = 2.4.24 que no está disponible en el repositorio de ubuntu 11.04 (la versión anterior está disponible) por lo que debe descargar la fuente y compilarla usando los siguientes comandos:
./configure
make
make install
3-Descarga la biblioteca mesa y luego compila usando los siguientes comandos: ./configure --prefix = install_directory
make realclean
make linux-fbdev
sudo make install
tenga cuidado cuando elija el directorio_instalación para que no sobrescriba la biblioteca de mesa del sistema. luego compila tu aplicación usando las opciones: -lGL -lOSMesa -ldl -L''install_directory/lib'' -I''install_directory/include''
Como dijiste, necesitas un conductor 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.
Puede usar Mesa para renderizar software basado en framebuffer.
Utilizo SDL (Simple Direct Media Layer) 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í.