* = I'm particularly hoping someone else might contribute this. Please? :) modules ------- * Write blitters for 1bpp, 2bpp, 4bpp * Implement the rest of the copy operations, which currently return -ENOSYS - Use the palette parameter to 16/24/32bpp copies to indicate the source pixel format, eg #define DINX_32BPP_RGBX ((unsigned long *)-1) etc. - Mouse pointer: implement in a layer between dinx.c and blitter Any drawing operation will check if the cursor is in the way. If so, it should hide it and send a DEVENT_CURSOR_HIDDEN to the server. - Have find_blitter request the module appropriate to the framebuffer depth - Expand or duplicate queued redraw events that overlap a DCOMMAND_MOVE_RECT - For palettized copies, support a "transparent" colour index - Font server: use kernel buffers to cache glyphs, user-space font server fulfils glyph rendering requests into buffers while win_write blocks. Then use regular 1bpp copy to framebuffer. - Get a real major number lib --- * Bindings for GDK, Microwindows, and anything else. This really needs a userspace windowing system library to support child windows. - Rectangle convenience geometry routines - make headers compile with -ansi -pedantic server ------ The current dinxd.c is really just some test code in disguise. It needs to be rewritten to actually be useful. - Proper event delivery, keys, mouse and keyboard focus - Protocol to get display properties - Palette support: start with 8bpp 6x6x6 colour cube plus extra greyscales - Handshake to check that client and server speak the same protocol version - Define a window manager API, so a seperate process can draw borders etc. Read about ICCCM to get an idea of the issues involved first. doc --- - Document protocol, library API - Document strategy for race conditions in dinx.c