
DirectFB - jasonhansel
https://web.archive.org/web/20161104003307/http://www.directfb.net/
======
kickitover
Ah memories. DirectFB was an awesome project, unfortunately, if I am not
mistaken, it was only targeted at Linux at the time. Another project, that now
X.org+Linux are re-implementing extremely poorly, was the Kernel Graphics
Interface ([http://kgi-project.org](http://kgi-project.org)). KGI was an
incredibly well engineered API, portable GPU interface, and reference
implementation for FreeBSD-8.x and Linux-2.x, providing modern features and
GPU programming paradigms to Linux and Unix systems; monolithic or micro-
kernel designs. KGI required the General Graphics Interface for a complete
user experience, as in, a replacement X server called XGGI, however, it also
functioned very well without X or any other heavy graphical windowing system
analogous to The X Window System, it was engineered for embedded systems too.
GGI was an amazing project too, with it's platform agnostic way to draw
graphics via it's multiple display targets or surfaces; DirectFB; SDL;
DirectX; KGI; X11; VGL; foo. I suspect both were well over engineered, and at
the time, the patches for KGI were rather large, and I believe the Linux crowd
did not want GPU mode-setting in the kernel, a shame, because KGI's mode-
setting was next level at the time and it could be tightly integrated with the
rest of KGI, or remain a mini driver in the kernel. KGI did have some odd
constructs that sometimes made for some mental acrobatics; focuses; displays;
devices; odd client-server model between all the devices, it almost became a
complex beast on first glance. It actually made way for a true GPU multi-
headed and multi-user system, that provided fine grained security between
devices or users to the GPU, managed by a brilliant low-level, or kernel level
multiplexer of the low-level or kernel console, virtual terminals and other
applications (or clients) to the devices (focuses/or inputs and the display).
Some of their code was stuck in the late 90s and the interface was rigid
regarding what a GPU was at the time, however, that could have been changed,
as there were updated specifications for next generation ideas for KGI based
on where GPU development was going at the time. If I recall correctly, there
were GPU vendor developers volunteering at KGI, and, I could be mistaken, but
when AMD bought ATi, one of the last GGI developers/volunteers worked at AMD,
and they worked with other AMD engineers to convince AMD to eventually release
hardware data-sheets and specifications on ATi GPU hardware, and it happened.

A shame neither took off, and we are now left with X.org's insistence on
Linuxisms for GPU development.

Sorry for hijacking the thread, but thanks so much for the trip down memory
lane :-)

------
ashleyn
DirectFB was great for small embedded systems projects where you didn't want
the full weight of X. Unfortuntaely I don't think there's any alternative to X
any longer for these kinds of projects, probably because the cost of a SoC
capable of running X has fallen to the point where it doesn't make sense to
economise anymore.

~~~
craftyguy
This was primarily the reason why I chose to write the disk decryption
keyboard/unlocker for postmarketOS to use directFB (by way of SDL2). Putting X
into an initramfs is absurd. It's very unfortunate that DirectFB seems to be
abandoned now.

------
buserror
To be fair, even a while back it became pretty easy to use fbdev (memory
mapped), and Cairo to draw on it.

For event handling eventfd (and now libinput) also became quite a bit easier
to use as well so many many years ago I decided to cut out the middleman
(direcfb) and do it with these instead.

------
thisacctforreal
See also [http://tekui.neoscientists.org](http://tekui.neoscientists.org)

~~~
walterbell
Is that currently maintained?

~~~
thisacctforreal
[http://hg.neoscientists.org/tekui/](http://hg.neoscientists.org/tekui/)

Last release was early 2015.

Last change to the repo was 15 months ago.

~~~
squarefoot
Last time I checked it still compiles and runs fine on modern Debian systems.
The only caveat is to edit its configuration file to look for (if necessary)
the actually installed version of Lua.

edit: minor correction

------
noobermin
Is there any similar library that is still under development?

------
yjftsjthsd-h
Okay, I'll bite: last post says it got moved to new, cheaper hosting to it
wouldn't go offline. This submission is on archive.org. What happened?

Neat project, though :)

