A console has a fixed line and column count. Each entry is represented by a
kmscon_cell object. The console can be resized on the fly.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
A console may be displayed on multiple outputs. We allow different screen
resolutions on these outputs so we need a way to map the console image onto
different outputs.
We simply render the console image into a cairo surface with a user-given
resolution. This should be set to the highest resultion of the used outputs. The
application can now map this image onto the different framebuffers. This will
scale the image if the target framebuffer is smaller than the cairo surface.
We also do not clear the framebuffer. This should be done by the user. This
allows us to draw with alpha values and blend the console on top of the current
framebuffer. We do not have to care for background images and the application
has full control of where the console is shown.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
The name of the unref function was wrong. Fix this from kmscon_con_unref to
kmscon_console_unref.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Every cell of the console contains one single printable character. We want to be
Unicode compatible so we must support combined characters. Hence, each cell
consists of a UTF-8 string that can be drawn by pango as a single glyph.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Add dummy files for the console subsystem. This subsystem will be used to draw a
console to a framebuffer. It uses pango and cairo for text-rendering and will
provide all required modification functions that the terminal emulation will
require.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
The output subsystem manages the connected monitors, provides framebuffers and
OpenGL contexts and handles all DRM/DRI/KMS related functionality.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>