60 lines
2.8 KiB
Plaintext
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.
|