Blender V2.61 - r43446
Files

sDNA

blender | DNA, RNA and .blend access
Collaboration diagram for sDNA:

Files

file  DNA_action_types.h
file  DNA_actuator_types.h
file  DNA_anim_types.h
file  DNA_armature_types.h
file  DNA_boid_types.h
file  DNA_brush_types.h
file  DNA_camera_types.h
file  DNA_cloth_types.h
file  DNA_color_types.h
file  DNA_constraint_types.h
file  DNA_controller_types.h
file  DNA_curve_types.h
file  DNA_customdata_types.h
file  DNA_defs.h
file  DNA_dynamicpaint_types.h
file  DNA_effect_types.h
file  DNA_fileglobal_types.h
file  DNA_genfile.h
 

blenloader genfile private function prototypes


file  DNA_gpencil_types.h
file  DNA_group_types.h
file  DNA_ID.h
 

ID and Library types, which are fundamental for sdna.


file  DNA_image_types.h
file  DNA_ipo_types.h
file  DNA_key_types.h
file  DNA_lamp_types.h
file  DNA_lattice_types.h
file  DNA_listBase.h
 

These structs are the foundation for all linked lists in the library system.


file  DNA_material_types.h
file  DNA_mesh_types.h
file  DNA_meshdata_types.h
file  DNA_meta_types.h
file  DNA_modifier_types.h
file  DNA_movieclip_types.h
file  DNA_nla_types.h
file  DNA_node_types.h
file  DNA_object_fluidsim.h
file  DNA_object_force.h
file  DNA_object_types.h
 

Object is a sort of wrapper for general info.


file  DNA_outliner_types.h
file  DNA_packedFile_types.h
file  DNA_particle_types.h
file  DNA_property_types.h
file  DNA_scene_types.h
file  DNA_screen_types.h
file  DNA_sdna_types.h
file  DNA_sensor_types.h
file  DNA_sequence_types.h
file  DNA_smoke_types.h
file  DNA_sound_types.h
file  DNA_space_types.h
file  DNA_speaker_types.h
file  DNA_text_types.h
file  DNA_texture_types.h
file  DNA_tracking_types.h
file  DNA_userdef_types.h
file  DNA_vec_types.h
file  DNA_vfont_types.h
file  DNA_view2d_types.h
file  DNA_view3d_types.h
file  DNA_windowmanager_types.h
file  DNA_world_types.h
file  dna_genfile.c
file  makesdna.c
 

Struct muncher for making SDNA.


makesdna

About the DNA module

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.

Known issues with DNA

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.).

Dependencies

DNA has no external dependencies (except for a few system includes).

NOTE

PLEASE READ INSTRUCTIONS ABOUT ADDING VARIABLES IN 'DNA' STRUCTS IN

intern/dna_genfile.c (ton)