Stable version 0.49.41
[neuro.git] / TODO
blobacac9b23910ce7cb341f6b8d1ecac8f8a57fd5d8
1 Things to do in the neuro library.
3 man -- the function Neuro_EBufIsEmpty:
4          - the documentation of the return 2 isn't
5            present in the man page. It is the value
6            returned when the input EBUF is NULL.
8 docs -- add a configure entry for Tcl:
9          - the configure script needs to
10            check if Tcl is available to build the
11            manual pages. If it isn't, no errors should
12            be raised, only disable documentation building.
14 *** events -- Implement an event based set of functions:
15          - Currently, the state of the mouse and 
16            keyboard are looped... the drivers will
17            need to be changed accordingly.
19 graphics/other -- Implement Neuro_PutPixel and GetPixel:
20          - The location where those functions needs
21            to be put is probably best in the extlib
22            module.
24 debug -- bugged Neuro_DebugChannel:
25          - It doesn't always work, it needs to
26            be tested fully because it definitely
27            contains bugs. (warn+all error+all to
28            the filter and EBUF doesn't output any
29            warnings when it is supposed to do so).
31 misc/arg -- the source file doesn't have a code template
32          - The code template templates/template_source 
33            needs to be implemented for this module.
35 misc -- the whole misc/ directory's source files require
36         a major cleanup.
38 misc -- move Color conversion functions:
39          - The color conversion functions should be moved
40            to their own source file (Neuro_RGB**).
42 extlib (X11) -- Lib_SetColorKey has a memory leak:
43          - A very nasty one on that, needs to be fixed.
45         * After checking with valgrind I actually found
46           out that the memory leak lies in the X11
47           client interface... I recently upgraded my 
48           Xorg from 6.8.2 to 6.9.0 and that's what I'm
49           getting now... A huge amount of memory leaks.
51 extlib (SDL) -- Needs a buffer to hold the v_objects:
52          - I just noticed that the SDL doesn't have a
53            v_object cleaner like the X11 driver, we
54            need to implement one as soon as possible
55            to avoid a maximum amount of memory leaks.
56            This should be pretty easy, just need to
57            use the same method as in the X11 driver.
59 extlib (SDL) on w32 -- bug with the bitmap loader:
60          - When the algorithm tries to load compressed
61            bitmaps(not all though), theres a bug that 
62            makes it do a death loop and/or a 
63            segmentation fault... When theres a death 
64            loop, it eventually ends up in a 
65            segmentation fault. I suspect that
66            the SDL.dll API differs from the linux object
67            and either the PutPixel function or a lack of
68            step for bitmaps is the cause of it.
70            * After checking the bitmap code, it seems
71            the bug is related the the bits per pixel
72            when creating a v_object.
74 extlib (SDL) -- There seems to be a memory leak:
75          - When running the "simple" example
76            project with valgrind, I get memory
77            leaks with SDL. This could be SDL
78            though because I couldn't trace the
79            leaks. About 27KB leaked.
81 extlib -- the fonts have a memory leak:
82          - The code to load the fonts need
83            to be checked for memory leaks
84            because valgrind currently says
85            theres about 27k of constant mem
86            leak, no matter how much fonts you
87            create. It could be a leak in freetype
88            itself. 
89         *** NOTE Just checked and the values
90            are different and they are the exact
91            same on another project not at all
92            using the fonts...
94 debug -- The whole debug.c file needs to change:
95          - The module needs to be put into src/misc
96            in the first place and every Debug_ functions
97            need to be interfaced to Neuro_ functions.
99 debug -- The implementation needs a namespace method:
100          - In order to avoid module name conflicts,
101            we will need to implement some kind of namespace
102            that projects will set in a similar matter as
103            NEURO_MODULE_CHANNEL but rather globally to the
104            whole project this time instead of just per module.
105         *** DONE but needs more work in order to make it easily added
106             into projects as this requires a macro to be set in a global header
107             in order to work... which would be a little hard to figure for people
108             that start to use the library.
110 bitmap -- Add checks to approve bitmap files:
111          - In order to make the bitmap loader more robust,
112            it is imperative to implement a set of checks to
113            see if the input file to be loaded by the bitmap
114            loader are really bitmaps. a minimal version was
115            done to check the magic word. We also need to put
116            a check to see if the data size are correct according
117            to a value in the header(something like data size).
119 general -- document the API (high priority):
120          - All the external functions of the API should be 
121            documented in a format that neuroman.tcl should
122            be able to parse.
123          - EBuf  [done needs to be revised]
124          - Video [not done]
125          - Events [not done]
126          - misc (including the extlib interface) [not done]
128 * extlib sdl -- default depth currently static 16 :
129         - make this so it is settable and not just a static 16.
131 graphics engine : coredraw -- review and heavily test Graphics_RedrawSection :
132         - I noticed this function is really the weak point of the painter's algorithm
133           and thus needs heavy testing and consolidation.
135 **goals for 0.50 :
136         - Finish a full documentation of the library.
137         - Make the project GPL v3 compatible and perhaps
138           completely make it GPL v3.
140 **goals for 0.60 :
141         - Fix the bugs in the bitmap loading algorithm.
142         - Code the new debugging method.
143         - fix up the keyboard events in the SDL driver.
144         - Clean up the source file in the misc directory.
145           All the functions inside other.c need to be placed
146           in meaningful source files.
147         - Go through all the modules and implement the new
148           debugging method to them.
150 ***goals for 1.0 :
151         - make the extlib drivers their own shared 
152           objects that neuro could dynamically load
153           during runtime. A configuration file would
154           be used to set which one of the drivers to
155           load.
156         - code openGL drivers for neuro, those drivers
157           would probably have more extensible set of
158           functions which could be used by the applications.
159           So I guess it would be a different branch than
160           the 2d extlib ones.
162 extlib X11 -- implement gfx shared memory :
163         - in order to get far faster performances with
164           pretty much any graphical operations, the
165           addition of MIT shared memory for every images
166           will be used.
168 implement subprojects :
169         libneuronet : done
170         libneurogui : to do
171         libgeometry : to do
172         sprite module : to do
173         image loader : to do
174