1 Things to do in the neuro library.
3 neuronet -- It is possible to connect more than once with a single master.
4 - Currently, there is no check upon several NNet_Connect to
5 see if the master already has a running connection. It is very
6 important to make sure not to allow this!
8 neuronet -- New feature possibility of changing the PROTOCOL.
9 - TCP and UDP should be readily available.
10 - Multicast support would also be a very important feature
11 especially for devwatcher.
13 man -- the function Neuro_EBufIsEmpty:
14 - the documentation of the return 2 isn't
15 present in the man page. It is the value
16 returned when the input EBUF is NULL.
18 docs -- change of script:
19 - Implement (and finish) the new haskell neuroman
20 tool which supports html output (and eventually man pages).
22 docs -- removal of docs, to be moved independently of libneuro:
23 - I guess it would be better to simply move docs
24 out of the core sources and permit embedding of the
25 docs rather than directly having them in the tree would
26 be better at every levels.
28 docs -- add a configure entry for Tcl:
29 - the configure script needs to
30 check if Tcl is available to build the
31 manual pages. If it isn't, no errors should
32 be raised, only disable documentation building.
34 *** events (done) -- Implement an event based set of functions:
35 - Currently, the state of the mouse and
36 keyboard are looped... the drivers will
37 need to be changed accordingly.
39 graphics/other (done) -- Implement Neuro_PutPixel and GetPixel:
40 - The location where those functions needs
41 to be put is probably best in the extlib
44 debug -- bugged Neuro_DebugChannel:
45 - It doesn't always work, it needs to
46 be tested fully because it definitely
47 contains bugs. (warn+all error+all to
48 the filter and EBUF doesn't output any
49 warnings when it is supposed to do so).
51 misc/arg -- the source file doesn't have a code template
52 - The code template templates/template_source
53 needs to be implemented for this module.
55 misc -- the whole misc/ directory's source files require
58 misc -- move Color conversion functions:
59 - The color conversion functions should be moved
60 to their own source file (Neuro_RGB**).
62 extlib (X11) (passed) -- Lib_SetColorKey has a memory leak:
63 - A very nasty one on that, needs to be fixed.
65 * After checking with valgrind I actually found
66 out that the memory leak lies in the X11
67 client interface... I recently upgraded my
68 Xorg from 6.8.2 to 6.9.0 and that's what I'm
69 getting now... A huge amount of memory leaks.
71 extlib (SDL) -- Needs a buffer to hold the v_objects:
72 - I just noticed that the SDL doesn't have a
73 v_object cleaner like the X11 driver, we
74 need to implement one as soon as possible
75 to avoid a maximum amount of memory leaks.
76 This should be pretty easy, just need to
77 use the same method as in the X11 driver.
79 extlib (SDL) on w32 -- bug with the bitmap loader:
80 - When the algorithm tries to load compressed
81 bitmaps(not all though), theres a bug that
82 makes it do a death loop and/or a
83 segmentation fault... When theres a death
84 loop, it eventually ends up in a
85 segmentation fault. I suspect that
86 the SDL.dll API differs from the linux object
87 and either the PutPixel function or a lack of
88 step for bitmaps is the cause of it.
90 * After checking the bitmap code, it seems
91 the bug is related the the bits per pixel
92 when creating a v_object.
94 extlib (SDL) -- There seems to be a memory leak:
95 - When running the "simple" example
96 project with valgrind, I get memory
97 leaks with SDL. This could be SDL
98 though because I couldn't trace the
99 leaks. About 27KB leaked.
101 extlib -- the fonts have a memory leak:
102 - The code to load the fonts need
103 to be checked for memory leaks
104 because valgrind currently says
105 theres about 27k of constant mem
106 leak, no matter how much fonts you
107 create. It could be a leak in freetype
109 *** NOTE Just checked and the values
110 are different and they are the exact
111 same on another project not at all
114 debug -- The whole debug.c file needs to change:
115 - The module needs to be put into src/misc
116 in the first place and every Debug_ functions
117 need to be interfaced to Neuro_ functions.
119 debug -- The implementation needs a namespace method:
120 - In order to avoid module name conflicts,
121 we will need to implement some kind of namespace
122 that projects will set in a similar matter as
123 NEURO_MODULE_CHANNEL but rather globally to the
124 whole project this time instead of just per module.
125 *** DONE but needs more work in order to make it easily added
126 into projects as this requires a macro to be set in a global header
127 in order to work... which would be a little hard to figure for people
128 that start to use the library.
130 bitmap -- Add checks to approve bitmap files:
131 - In order to make the bitmap loader more robust,
132 it is imperative to implement a set of checks to
133 see if the input file to be loaded by the bitmap
134 loader are really bitmaps. a minimal version was
135 done to check the magic word. We also need to put
136 a check to see if the data size are correct according
137 to a value in the header(something like data size).
139 ***general -- a split of code is required (high priority):
140 - After developping libneuronet heavily, it was clear
141 that libneuro became an heavy dependency. End coders
142 that use neuronet don't really want to use libneuro's
143 gfx api code and thus it becomes vastly unecessary code.
144 - A first non drastic approach was to implement a
145 configure option which disabled all of the video, font and
146 such functionalities of libneuro which was then unofficially
147 called light libneuro.
148 - Now, I want to fully split the libneuro code, the current
149 libneuro project will contain only a set of toolbox modules
150 like debug, ebuf, (the new lbuf) and string splitters.
151 The split task is probably easier than it seems but a certain
152 dilemma is required regarding the code history of the changes.
153 The safest approach would be to _copy_ the history for both
154 the splitted projects.
155 - The video project, code named libneurovideo for now will contain
156 all the rest not mentionned in the earlier step, things like extlib,
157 color functions, painter's algorithm, bitmap loader and such will be
158 the main functionnalities of the project. The project will have a safe
159 spot in essence exactly the same as the libneuronet spot
160 for quick inclusion into the libneuro compilation process.
162 general -- document the API (high priority):
163 - All the external functions of the API should be
164 documented in a format that neuroman.tcl should
166 - EBuf [done needs to be revised]
169 - misc (including the extlib interface) [not done]
171 * extlib sdl -- default depth currently static 16 :
172 - make this so it is settable and not just a static 16.
174 graphics engine : coredraw -- review and heavily test Graphics_RedrawSection :
175 - I noticed this function is really the weak point of the painter's algorithm
176 and thus needs heavy testing and consolidation.
179 - Finish a full documentation of the library.
180 - Make the project GPL v3 compatible and perhaps
181 completely make it GPL v3.
184 - Fix the bugs in the bitmap loading algorithm.
185 - Code the new debugging method.
186 - fix up the keyboard events in the SDL driver.
187 - Clean up the source file in the misc directory.
188 All the functions inside other.c need to be placed
189 in meaningful source files.
190 - Go through all the modules and implement the new
191 debugging method to them.
194 - make the extlib drivers their own shared
195 objects that neuro could dynamically load
196 during runtime. A configuration file would
197 be used to set which one of the drivers to
199 - code openGL drivers for neuro, those drivers
200 would probably have more extensible set of
201 functions which could be used by the applications.
202 So I guess it would be a different branch than
205 extlib X11 -- implement gfx shared memory :
206 - in order to get far faster performances with
207 pretty much any graphical operations, the
208 addition of MIT shared memory for every images
211 implement subprojects :
215 sprite module : to do