Blender V2.61 - r43446
|
The DNA module holds all type definitions that are serialized in a blender file. There is an executable that scans all files, looking for struct-s to serialize (hence sdna: Struct sDNA). From this information, it builds a file with numbers that encode the format, the names of variables, and the plce to look for them.
Because of historical reasons, some function pointers were untyped. The parser/dna generator has been modified to explicitly handle these special cases. Most pointers have been given proper proto's by now. DNA_space_types.h::Spacefile::returnfunc may still be badly defined. The reason for this is that it is called with different types of arguments. It takes a char* at this moment...
Also because of historical reasons, there is a path prefix to the headers that need to be scanned. This is the BASE_HEADER define. If you change the file-layout for DNA, you will probably have to change this (Not very flexible, but it is hardly ever changed. Sorry.).
DNA has no external dependencies (except for a few system includes).
PLEASE READ INSTRUCTIONS ABOUT ADDING VARIABLES IN 'DNA' STRUCTS IN
intern/dna_genfile.c (ton)