+++ /dev/null
-= 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?
-
- - Check whether ARB_texture_non_power_of_two is supported. We used it
- everywhere.
-
-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.
-
- - Make the selection of layouts, variants and options configurable. A simple
- "us" layout should be the default.
-
- - Figure out how to best support dead keys. Xlib handles dead keys through the
- somewhat elaborate "Compose" mechanism; it covers all bases but requires
- parsing system and user text files and is locale dependent. Alternatively,
- we could hardcode a transformation table to cover basic use cases.
-
- - See if there's a way to properly release the xkb description. Maybe patch
- libxkbcommon. As a bonus remove the annoying stderr messages it spits out
- every time.