kmscon/TODO
David Herrmann 92de8f3f12 Add Ran Benita to authors list
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
2011-12-31 12:46:15 +01:00

60 lines
2.8 KiB
Plaintext

= This is a rough TODO list, feel free to contribute patches =
Output Subsystem:
- Test whether eglMakeCurrent() is thread-aware and can set different context
per thread. Comment this behaviour in kmscon_compositor_use().
Multiple active context would actually make sense if you have multiple
graphic cards as you could render on both cards simultaneously. However, if
you have only one card, multiple active contexts are not really needed.
- Avoid EGL_EGLEXT_PROTOTYPES and GL_GLEXT_PROTOTYPES and instead retrieve
function pointers dynamically. This may also fix invalid function pointers if
no GL context is available and we deinitialize the console subsystem. Or we
may need to use proper dependencies here. The GL context shouldn't be
destroyed as long as a console uses it.
- How to get bpp and colordepth?
- Retrieve DRI card from udev or at least make kmscon_compositor_new() accept a
path to the DRI card so the user can have udev provide the path.
- Whats the difference between connector and encoder? Or why are encoders
needed at all? The output selection logic simply tries to find the first
encoder that provides an available crtc. Should we replace this logic with an
additional list of available crtcs so users can choose them, too?
- Is glFinish() needed before setCrtc or is glFlush sufficient?
Console Subsystem:
- Do we need to offer a way to create mipmaps of the cairo image? This would
allow faster mappings of the console onto the framebuffers.
- We need to correctly handle Unicode characters. Every console cell contains
one single character, however, Unicode supports combining marks. Our
implementation supports them but we need to correctly map our keyboard input
to the correct cells. Pango depends on glib so we can probably use the glib
functions for UTF-8/Unicode handling.
- Add glyph caching support with cairo_scaled_font_t. The libvte does this
inside vtedraw.c but it is licensed by GPL so we need to rewrite it if we
want it.
This would speed up our font-draw functions considerably as we would bypass
pango if a glyph is already in the hash-table.
- Consider switching to freetype2 and fontconfig. This would drop *lots* of
dependencies including pango, glib, cairo...
Freetype2 also provides a fast glyph cache and is much more lightweight than
pango.
- We use "monospace" font by default but we should instead provide some way to
allow the user to choose a font.
VT Subsystem:
- Set KDSKBMODE to K_OFF to avoid getting input from the VT subsystem. This
also discards the VT-switch events so we should first implement our own
VT-switching mechanisms and then use this K_OFF switch.
Input Subsystem:
- Add simple blacklist based on device names to input subsystem to avoid adding
all devices.