The GLFBDev driver interface allows one to do OpenGL rendering into a framebuffer managed with the Linux's fbdev interface.
Basically, the programmer uses the fbdev functions to initialize the graphics hardware and setup the framebuffer. Then, using a calls to Mesa's glFBDev API functions, one can render into the framebuffer with the OpenGL API functions.
Note, only software rendering is supported; there is no hardware acceleration.
The GL/glfbdev.h header file defines the glFBDev interface.
The progs/fbdev/glfbdevtest.c demonstrates how to use the glFBDev interface.
For more information about fbdev, see the Framebuffer Howto
You will need at minimum, a framebuffer device, check /dev/fb0
To compile Mesa with support for the glFBDev interface:
make realclean make linux-fbdev
When compilation is finished look in progs/glfbdev/ for the glfbdevtest demo.
Typically /dev/fb/0 is grouped to the video group. It may be useful to add your user to the video group so the demos will not have to be run as root. To use fbdevglut with the prefered tty input, you should add the user to the tty group as well
To compile the redbook sample programs:
cd progs/redbook make
glut features not supported:
Keyboard input is read by opening /dev/tty and reading keycodes in medium raw mode.
Mouse input is read from env var MOUSE, or /dev/gpmdata and should be in ms3 format. To forward data in this format to /dev/gpmdata, run gpm with the -Rms3 option.
glutInit allows glut programs to pass parameters to the glut library, currently the following options are supported for fbdevglut:
Notes:
1. The mouse pointer flickers in single buffering mode, as it must be rendered in software. Hopefully in the future there will be a way to access hardware cursors in fbdev devices.