Аппаратный независимый графический интерфейс на уровне Linux на уровне framebuffer. Этому манипулируют путем записи на узел устройства (обычно /dev/fb0
), который является эквивалентом системного вызова, поскольку он является средством отправки запросов к ядру. Таким образом, это не требует каких-либо библиотек.
Общим подходом является mmap()
блок памяти пространства пользователя, представляющий экран, до /dev/fb0
, а затем манипулируя этим. Есть несколько вызовов ioctl()
, чтобы получить информацию о дисплее фреймбуфера. Хорошим стартовым местом для информации будет документ в источнике ядра - src/Documentation/fb
- это целый каталог, см., Например, «framebuffer.txt» и «api.txt». Есть несколько руководств и таких, если вы смотрите онлайн. Неважно, какой источник версии ядра вы смотрите - последней версией «api.txt» был 2011 год и «framebuffer.txt» за десять лет до этого (поэтому интерфейс очень стабильный).
Обратите внимание, что вы не можете использовать фреймбуфер из X. Если вы хотите использовать графический материал в X, вы должны использовать по крайней мере Xlib или библиотеку более высокого уровня, построенную на этом.
Зачем нужен системный вызов? Как насчет написания на '/ dev/fbX' - это так? – trojanfoe