936
edits
No edit summary |
|||
Line 39: | Line 39: | ||
main contains the initial entry point and final exit. It initializes things that have to be done early on and decides if we're starting the full application or just a viewer, then calls fgviewerMain(argc, argv) or fgMainInit(argc, argv). We'll skip the viewer and focus on fgMainInit. | main contains the initial entry point and final exit. It initializes things that have to be done early on and decides if we're starting the full application or just a viewer, then calls fgviewerMain(argc, argv) or fgMainInit(argc, argv). We'll skip the viewer and focus on fgMainInit. | ||
main() is the first of four stages of initialization in Flightgear. The first stage ends when main() calls fgMainInit(argc, argv) | |||
|- | |- | ||
| 2. || Main/main.cxx || int fgMainInit( int argc, char **argv ) | | 2. || Main/main.cxx || int fgMainInit( int argc, char **argv ) | ||
Line 78: | Line 78: | ||
Is what's above this point enough to know about startup and initialization? | Is what's above this point enough to know about startup and initialization? | ||
FGcommands.cxx and fg_scene_commands.cxx contains a number of static functions not called from c++. are these only called from Nasal? Is that why they are missing from the .hxx? | |||
Do we need to show some examples of property nodes? | |||
Would a list of functions contained in each of the modules in src/Main be of any use? | |||
For example: | |||
fgCommands.cxx | |||
* static inline SGPropertyNode * get_prop (const SGPropertyNode * arg, SGPropertyNode * root) | |||
* static inline SGPropertyNode * get_prop2 (const SGPropertyNode * arg, SGPropertyNode * root) | |||
* static void split_value (double full_value, const char * mask, double * unmodifiable, double * modifiable) | |||
etc | |||
would the same list with a note on its purpose and usage be of help? | |||
fgCommands.cxx | |||
| | |||
{| class="wikitable" | |||
|- | |||
! function signature || Description | |||
|- | |||
| static inline SGPropertyNode * | |||
get_prop (const SGPropertyNode * arg, SGPropertyNode * root) | |||
|. gets property[0] | |||
|- | |||
| static inline SGPropertyNode * | |||
get_prop2 (const SGPropertyNode * arg, SGPropertyNode * root) | |||
| gets property[1] | |||
|- | |||
| static void | |||
split_value ( | |||
double full_value, const char * mask, | |||
double * unmodifiable, double * modifiable) | |||
| Get a double value and split it as required. | |||
|- | |||
| static void | |||
limit_value (double * value, const SGPropertyNode * arg) | |||
| | |||
|} | |||
The material below are detailed notes from an initial look at the main loop. They're just lists of what gets done where. Would a new developer just read the actual functions and make their own notes? | The material below are detailed notes from an initial look at the main loop. They're just lists of what gets done where. Would a new developer just read the actual functions and make their own notes? | ||
|- | |- | ||
| | | Clamp or wrap a value as specified. | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- |
edits