added neuroman.tcl 1.0.0b and documented ebuf.h more... I'm about
[neuro.git] / TODO
blob542b4f8c9b425ded7bca0de3dd79cff43a5ee252
1 Things to do in the neuro library.
4 graphics engine : 
5         - fix the dynamic redraw of the tiles below the dynamic object, it does not seem to work
6           perfectly; it redraw a very small portion of the dynamic object instead of the tile below 
7           on the edges, barely noticeable.
8         - also noticed bad redraws in isoe when the robot goes off screen; tiles around seems to
9           blink black very fast, barely noticeable. Confirmed this is a bug with type 0 or 3
10           bounds case. Quick fix done, need to test it.
11         - implement a way to change a certain color into an image to support things like
12           font colors. Would need to be implemented low in the drawing process. - won't do it
13         - implement a fast independant alpha module, something called after the actual low level
14           draw.  - done
15         
17 network engine/module : 
18         code it.
20 listimg module :
21         move it to neuro.
23 sprite module :
24         move it to neuro.
26 ** bitmap loader module (X11) :
27         - find a way to convert it so it creates an XImage directly (or indirectly by providing
28           its ressources so the X11 abstraction layer can take care of creating an XImage out
29           of those). Currently, the bitmap only saves to the pixmap format and then we push this
30           image to the pixmap standard lib in X11 which makes it all Very slow. 
31           This is an important change that will need to be worked on very soon because programs
32           depending on neuro will need to dynamically load images anytime to avoid using too
33           much memory.
34         - Core bitmap should be made independant and remove the char *symbol of the color struct.
35         - 24 BPP could be made faster if we had a map of the colors already inputed; Instead
36           of looping everytime the color buffer to see if a color was already added, we would
37           simply do a certain & with the color binary map to see if it was already added or no.
38           This method would use too much memory, need to find a way to implement this resonably.
41 *** core graphics :
42         - Make an abstraction of the images themselves, only the screen would be in common
43           with the library in use (Would place neuro in direct competition with SDL).
44           Perhaps keep being semi independant(to, for example, keep using the ultra performant
45           X11 blitter) and only use our own blitter for special things like alpha rendering.
47 * add a function to Load bitmaps from memory :
48         - Initially to support Unicode Truetype fonts but would probably be very useful for
49           other things too. DONE in SDL... TODO in X11(need to add new functions to bitmap module)
51 * video -- graphics module : 
52         - Change the Dynamic type so it stays drawn until the external program explicitly tells it
53           to clean it. (Eventually, this will completely remplace the static dynamic method and
54           only this method will be used for both cases). - done
56 * extlib -- Add abstract Fonts (Unicode) support :
57         - To make SDL have fonts, we will use SDL_ttf and for X11, we will use the freetype2
58           library(and X11 bitmap for them).
60 extlib -- change the Lib_ prefix (low priority):
61         - Change the Lib_ prefix of the extlib module to something less common so apps that use
62           Neuro won't have conflits if they themselves use the prefix Lib_.
64 extlib | other -- indirect extlib access :
65         - External applications should not at all call the functions directly from the extlib
66           module. We need to have redundant functions that will serve as an interim between
67           extlib and the extern application. I suggest NEURO.h get its include of extlib.h
68           removed so external programs will have a warning if they use the extlib functions.
70 graphics engine -- drawing push functions to return address :
71         - In order for external applications to be able to destroy or modify drawing entries,
72           the graphics engine's drawing push functions will now return the address of the 
73           elements it adds and new functions will be made to either modify those elements
74           or destroy them. - done (actually, this is a duplicate)
76 * extlib sdl -- default depth currently static 16 :
77         - make this so it is settable and not just a static 16.
79 extlib sdl -- code the fonts :
80         - code the fonts, I think we will use our own freetype function instead of
81           SDL_ttf after all.
83 graphics engine -- cleaning of same layers priority :
84         - We need to bring up a priority inside items with the same layers so that instructions
85           to clean are actually PUT in the beginning of tasks to do and the rest after;
86           So precedence would always put the cleaning tasks in the front line. This would avoid
87           tasks to draw (especially text) never be done before it is cleaned... This might
88           be a bug however because the redraw function is supposed to handle that...