Revision: 18794 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18794 Author: blendix Date: 2009-02-02 20:57:57 +0100 (Mon, 02 Feb 2009)
Log Message: ----------- RNA: C API * RNA_blender.h is now generated along with the other files. It is not used anywhere yet, and still located quite hidden next to the other rna_*_gen.c files. Read only access for now. * Inherited properties are not copied from the base anymore but iterated over. Patch by Vekoon, thanks! * Array get/set callbacks now do the whole array instead of getting an index. This is needed for some layers for example so python can set the array as a whole, otherwise the check that one layer has to be enabled at all times gets in the way. Also nicer for the C API. * Also some changes to returning pointers to make the API cleaner, got rid of the type() callback and instead let get() return PointerRNA with the type included. The C API looks like this currently: http://users.pandora.be/blendix/RNA_blender.h Modified Paths: -------------- branches/blender2.5/blender/source/blender/blenkernel/intern/anim_sys.c branches/blender2.5/blender/source/blender/blenkernel/intern/fcurve.c branches/blender2.5/blender/source/blender/editors/animation/keyframing.c branches/blender2.5/blender/source/blender/editors/interface/interface.c branches/blender2.5/blender/source/blender/editors/space_outliner/outliner.c branches/blender2.5/blender/source/blender/makesrna/RNA_access.h branches/blender2.5/blender/source/blender/makesrna/RNA_define.h branches/blender2.5/blender/source/blender/makesrna/RNA_types.h branches/blender2.5/blender/source/blender/makesrna/intern/makesrna.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_armature.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_brush.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_cloth.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_color.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_curve.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_define.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_group.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_internal.h branches/blender2.5/blender/source/blender/makesrna/intern/rna_internal_types.h branches/blender2.5/blender/source/blender/makesrna/intern/rna_key.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_lamp.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_lattice.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_main.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_material.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_mesh.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_modifier.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_nodetree.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_object.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_rna.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_scene.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_screen.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_sequence.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_sound.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_space.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_text.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_userdef.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_wm.c branches/blender2.5/blender/source/blender/makesrna/intern/rna_world.c branches/blender2.5/blender/source/blender/python/intern/bpy_rna.c Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/anim_sys.c =================================================================== --- branches/blender2.5/blender/source/blender/blenkernel/intern/anim_sys.c 2009-02-02 19:31:43 UTC (rev 18793) +++ branches/blender2.5/blender/source/blender/blenkernel/intern/anim_sys.c 2009-02-02 19:57:57 UTC (rev 18794) @@ -200,19 +200,19 @@ { case PROP_BOOLEAN: if (RNA_property_array_length(&new_ptr, prop)) - RNA_property_boolean_set_array(&new_ptr, prop, array_index, (int)value); + RNA_property_boolean_set_index(&new_ptr, prop, array_index, (int)value); else RNA_property_boolean_set(&new_ptr, prop, (int)value); break; case PROP_INT: if (RNA_property_array_length(&new_ptr, prop)) - RNA_property_int_set_array(&new_ptr, prop, array_index, (int)value); + RNA_property_int_set_index(&new_ptr, prop, array_index, (int)value); else RNA_property_int_set(&new_ptr, prop, (int)value); break; case PROP_FLOAT: if (RNA_property_array_length(&new_ptr, prop)) - RNA_property_float_set_array(&new_ptr, prop, array_index, value); + RNA_property_float_set_index(&new_ptr, prop, array_index, value); else RNA_property_float_set(&new_ptr, prop, value); break; Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/fcurve.c =================================================================== --- branches/blender2.5/blender/source/blender/blenkernel/intern/fcurve.c 2009-02-02 19:31:43 UTC (rev 18793) +++ branches/blender2.5/blender/source/blender/blenkernel/intern/fcurve.c 2009-02-02 19:57:57 UTC (rev 18794) @@ -500,19 +500,19 @@ switch (RNA_property_type(&ptr, prop)) { case PROP_BOOLEAN: if (RNA_property_array_length(&ptr, prop)) - value= (float)RNA_property_boolean_get_array(&ptr, prop, index); + value= (float)RNA_property_boolean_get_index(&ptr, prop, index); else value= (float)RNA_property_boolean_get(&ptr, prop); break; case PROP_INT: if (RNA_property_array_length(&ptr, prop)) - value= (float)RNA_property_int_get_array(&ptr, prop, index); + value= (float)RNA_property_int_get_index(&ptr, prop, index); else value= (float)RNA_property_int_get(&ptr, prop); break; case PROP_FLOAT: if (RNA_property_array_length(&ptr, prop)) - value= RNA_property_float_get_array(&ptr, prop, index); + value= RNA_property_float_get_index(&ptr, prop, index); else value= RNA_property_float_get(&ptr, prop); break; Modified: branches/blender2.5/blender/source/blender/editors/animation/keyframing.c =================================================================== --- branches/blender2.5/blender/source/blender/editors/animation/keyframing.c 2009-02-02 19:31:43 UTC (rev 18793) +++ branches/blender2.5/blender/source/blender/editors/animation/keyframing.c 2009-02-02 19:57:57 UTC (rev 18794) @@ -485,19 +485,19 @@ switch (RNA_property_type(ptr, prop)) { case PROP_BOOLEAN: if (RNA_property_array_length(ptr, prop)) - value= (float)RNA_property_boolean_get_array(ptr, prop, index); + value= (float)RNA_property_boolean_get_index(ptr, prop, index); else value= (float)RNA_property_boolean_get(ptr, prop); break; case PROP_INT: if (RNA_property_array_length(ptr, prop)) - value= (float)RNA_property_int_get_array(ptr, prop, index); + value= (float)RNA_property_int_get_index(ptr, prop, index); else value= (float)RNA_property_int_get(ptr, prop); break; case PROP_FLOAT: if (RNA_property_array_length(ptr, prop)) - value= RNA_property_float_get_array(ptr, prop, index); + value= RNA_property_float_get_index(ptr, prop, index); else value= RNA_property_float_get(ptr, prop); break; Modified: branches/blender2.5/blender/source/blender/editors/interface/interface.c =================================================================== --- branches/blender2.5/blender/source/blender/editors/interface/interface.c 2009-02-02 19:31:43 UTC (rev 18793) +++ branches/blender2.5/blender/source/blender/editors/interface/interface.c 2009-02-02 19:57:57 UTC (rev 18794) @@ -1144,7 +1144,7 @@ tot= MIN2(tot, 3); for(a=0; a<tot; a++) - vec[a]= RNA_property_float_get_array(&but->rnapoin, prop, a); + vec[a]= RNA_property_float_get_index(&but->rnapoin, prop, a); } } else if(but->pointype == CHA) { @@ -1178,7 +1178,7 @@ tot= MIN2(tot, 3); for(a=0; a<tot; a++) - RNA_property_float_set_array(&but->rnapoin, prop, a, vec[a]); + RNA_property_float_set_index(&but->rnapoin, prop, a, vec[a]); } } else if(but->pointype == CHA) { @@ -1218,19 +1218,19 @@ switch(RNA_property_type(&but->rnapoin, prop)) { case PROP_BOOLEAN: if(RNA_property_array_length(&but->rnapoin, prop)) - value= RNA_property_boolean_get_array(&but->rnapoin, prop, but->rnaindex); + value= RNA_property_boolean_get_index(&but->rnapoin, prop, but->rnaindex); else value= RNA_property_boolean_get(&but->rnapoin, prop); break; case PROP_INT: if(RNA_property_array_length(&but->rnapoin, prop)) - value= RNA_property_int_get_array(&but->rnapoin, prop, but->rnaindex); + value= RNA_property_int_get_index(&but->rnapoin, prop, but->rnaindex); else value= RNA_property_int_get(&but->rnapoin, prop); break; case PROP_FLOAT: if(RNA_property_array_length(&but->rnapoin, prop)) - value= RNA_property_float_get_array(&but->rnapoin, prop, but->rnaindex); + value= RNA_property_float_get_index(&but->rnapoin, prop, but->rnaindex); else value= RNA_property_float_get(&but->rnapoin, prop); break; @@ -1282,19 +1282,19 @@ switch(RNA_property_type(&but->rnapoin, prop)) { case PROP_BOOLEAN: if(RNA_property_array_length(&but->rnapoin, prop)) - RNA_property_boolean_set_array(&but->rnapoin, prop, but->rnaindex, value); + RNA_property_boolean_set_index(&but->rnapoin, prop, but->rnaindex, value); else RNA_property_boolean_set(&but->rnapoin, prop, value); break; case PROP_INT: if(RNA_property_array_length(&but->rnapoin, prop)) - RNA_property_int_set_array(&but->rnapoin, prop, but->rnaindex, value); + RNA_property_int_set_index(&but->rnapoin, prop, but->rnaindex, value); else RNA_property_int_set(&but->rnapoin, prop, value); break; case PROP_FLOAT: if(RNA_property_array_length(&but->rnapoin, prop)) - RNA_property_float_set_array(&but->rnapoin, prop, but->rnaindex, value); + RNA_property_float_set_index(&but->rnapoin, prop, but->rnaindex, value); else RNA_property_float_set(&but->rnapoin, prop, value); break; Modified: branches/blender2.5/blender/source/blender/editors/space_outliner/outliner.c =================================================================== --- branches/blender2.5/blender/source/blender/editors/space_outliner/outliner.c 2009-02-02 19:31:43 UTC (rev 18793) +++ branches/blender2.5/blender/source/blender/editors/space_outliner/outliner.c 2009-02-02 19:57:57 UTC (rev 18794) @@ -1080,7 +1080,7 @@ te->rnaptr= *ptr; if(proptype == PROP_POINTER) { - RNA_property_pointer_get(ptr, prop, &pptr); + pptr= RNA_property_pointer_get(ptr, prop); if(pptr.data) { if(!(tselem->flag & TSE_CLOSED)) @@ -4105,7 +4105,7 @@ length= RNA_property_array_length(ptr, prop); if(length) - value= RNA_property_boolean_get_array(ptr, prop, index); + value= RNA_property_boolean_get_index(ptr, prop, index); else value= RNA_property_boolean_get(ptr, prop); @@ -4133,7 +4133,7 @@ char *text, *descr, textbuf[256]; int icon; - RNA_property_pointer_get(ptr, prop, &pptr); + pptr= RNA_property_pointer_get(ptr, prop); if(!pptr.data) return NULL; Modified: branches/blender2.5/blender/source/blender/makesrna/RNA_access.h =================================================================== --- branches/blender2.5/blender/source/blender/makesrna/RNA_access.h 2009-02-02 19:31:43 UTC (rev 18793) +++ branches/blender2.5/blender/source/blender/makesrna/RNA_access.h 2009-02-02 19:57:57 UTC (rev 18794) @@ -341,18 +341,24 @@ int RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop); void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, int value); -int RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, int index); -void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, int index, int value); +void RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values); +int RNA_property_boolean_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); +void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values); +void RNA_property_boolean_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value); int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop); void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value); -int RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int index); -void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, int index, int value); +void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values); +int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); +void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values); +void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value); float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop); void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value); -float RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, int index); -void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, int index, float value); +void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *values); +float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); +void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values); +void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, float value); void RNA_property_string_get(PointerRNA *ptr, PropertyRNA *prop, char *value); @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs