[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


From: Marco Gerards
Subject: Framebuffer
Date: Fri, 15 Oct 2004 13:51:26 +0000
User-agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux)


As I quickly mentioned in my email yesterday, I want to have a look at
the vga terminal.  This vga terminal is just one of the many
framebuffers that will be implemented, as far as I am concerned.  On
the PC we will have the VESA terminal someday.  It should be possible
to get a framebuffer on the new world macs too.  On some machines
there is only a framebuffer and no textmode.

To avoid code duplication it might be the best to write one generic
terminal called framebuffer which can be configured to work with many
kinds of framebuffers.  In this email I will write down a suggestion
how it should work.  I have little experience with framebuffers on a
lot of machines so I am not sure if what I am suggestion is sane or
portable.  I hope you will make suggestions to make this design as
good as possible or come forwards with alternative solutions.

The main thing that I want to do is creating a generic terminal called
"framebuffer".  On its own it is useless, but it can communicate with
another kind of modules, video drivers.

The framebuffer should always be initialized with a video driver and
depending on the size of the screen and its depth it reserves memory.
Whenever a character is written to the terminal, the generic
framebuffer driver writes it to the internal buffer.  When it is
required to synchronize the screen that is displayed with the one in
memory, it calls a function in the video driver.

To speed up things the framebuffer sends updates to the video driver
with updates so not the entire buffer has to be copied.  The
video driver is responsible to write the updates to video memory, bank
switching and making sure it is displayed on the screen.  That means
the video driver can do stuff like double buffering, etc.

The main advantage of this approach is that the framebuffer terminal
can do anything including showing the splashimage, etc.  All smart
things happen there, the video drivers just do the stupid work.  That
means that whenever someone wants to implement a framebuffer, he only
has to write a video driver and not a complete terminal driver.

Does this make sense or does this just suck?  I hope many people will
reply on this so I can start hacking ASAP.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]