542a12a977726fdb4051fc81c6d138908ad9679b
[platform/upstream/kmscon.git] / TODO
1 = This is a rough TODO list, feel free to contribute patches =
2
3 Output Subsystem:
4  - Test whether eglMakeCurrent() is thread-aware and can set different context
5    per thread. Comment this behaviour in kmscon_compositor_use().
6    Multiple active context would actually make sense if you have multiple
7    graphic cards as you could render on both cards simultaneously. However, if
8    you have only one card, multiple active contexts are not really needed.
9
10  - Avoid EGL_EGLEXT_PROTOTYPES and GL_GLEXT_PROTOTYPES and instead retrieve
11    function pointers dynamically.
12
13  - How to get bpp and colordepth?
14
15  - Retrieve DRI card from udev or at least make kmscon_compositor_new() accept a
16    path to the DRI card so the user can have udev provide the path.
17
18  - Check whether drmSetMaster() is needed. It can only be called with root
19    priviledges and all my tests worked without it. What are the benefits of
20    calling this?
21
22  - How to reset video after exiting the application? I want the previous VT or
23    application to immediately repaint its screen. Wayland resets the previous
24    DRM framebuffer, but I don't think this helps here?
25
26  - Whats the difference between connector and encoder? Or why are encoders
27    needed at all? The output selection logic simply tries to find the first
28    encoder that provides an available crtc. Should we replace this logic with an
29    additional list of available crtcs so users can choose them, too?
30
31  - Is glFinish() needed before setCrtc or is glFlush sufficient?
32
33 Console Subsystem:
34  - Do we need to offer a way to create mipmaps of the cairo image? This would
35    allow faster mappings of the console onto the framebuffers.
36
37  - We need to correctly handle Unicode characters. Every console cell contains
38    one single character, however, Unicode supports combining marks. Our
39    implementation supports them but we need to correctly map our keyboard input
40    to the correct cells. Pango depends on glib so we can probably use the glib
41    functions for UTF-8/Unicode handling.
42
43  - Add glyph caching support with cairo_scaled_font_t. The libvte does this
44    inside vtedraw.c but it is licensed by GPL so we need to rewrite it if we
45    want it.
46    This would speed up our font-draw functions considerably as we would bypass
47    pango if a glyph is already in the hash-table.