1 Things to do in the neuro library.
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
17 network engine/module :
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
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.
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
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...