[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17683] branches/blender2.5/blender/source /blender: RNA: review of commits in the past days, check the diffs for the

Hamed Zaghaghi hamed.zaghaghi at gmail.com
Wed Dec 3 02:27:31 CET 2008


Oh, I did most of mistakes

On Wed, 03 Dec 2008 03:15:11 +0330, Brecht Van Lommel <brecht at blender.org>  
wrote:

> Revision: 17683
>           http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17683
> Author:   blendix
> Date:     2008-12-03 00:45:11 +0100 (Wed, 03 Dec 2008)
>
> Log Message:
> -----------
> RNA: review of commits in the past days, check the diffs for the
> many small changes, but the two bigger ones are:
>
> * Sensors and controllers now use inheritance, rather than pointing
>   to the data in a separate struct. Had to add some new RNA define
>   functionality to support this better.
> * DNA_meta_types.h was marked as done but still missing many things,
>   now completed.
>
> Modified Paths:
> --------------
>     branches/blender2.5/blender/source/blender/makesdna/DNA_vfont_types.h
>     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/intern/makesrna.c
>     branches/blender2.5/blender/source/blender/makesrna/intern/rna_ID.c
>     branches/blender2.5/blender/source/blender/makesrna/intern/rna_actuator.c
>     branches/blender2.5/blender/source/blender/makesrna/intern/rna_brush.c
>     branches/blender2.5/blender/source/blender/makesrna/intern/rna_camera.c
>     branches/blender2.5/blender/source/blender/makesrna/intern/rna_controller.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_ipo.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_meta.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_property.c
>     branches/blender2.5/blender/source/blender/makesrna/intern/rna_sensor.c
>     branches/blender2.5/blender/source/blender/makesrna/intern/rna_vfont.c
>     branches/blender2.5/blender/source/blender/makesrna/intern/rna_world.c
>
> Modified:  
> branches/blender2.5/blender/source/blender/makesdna/DNA_vfont_types.h
> ===================================================================
> ---  
> branches/blender2.5/blender/source/blender/makesdna/DNA_vfont_types.h	2008-12-02  
> 21:29:31 UTC (rev 17682)
> +++  
> branches/blender2.5/blender/source/blender/makesdna/DNA_vfont_types.h	2008-12-02  
> 23:45:11 UTC (rev 17683)
> @@ -40,7 +40,6 @@
>  	ID id;
>  	
>  	char name[256];
> -	float scale, pad;
>  	
>  	struct VFontData *data;
>  	struct PackedFile * packedfile;
>
> Modified:  
> branches/blender2.5/blender/source/blender/makesrna/RNA_access.h
> ===================================================================
> ---  
> branches/blender2.5/blender/source/blender/makesrna/RNA_access.h	2008-12-02  
> 21:29:31 UTC (rev 17682)
> +++  
> branches/blender2.5/blender/source/blender/makesrna/RNA_access.h	2008-12-02  
> 23:45:11 UTC (rev 17683)
> @@ -37,13 +37,15 @@
> extern StructRNA RNA_Actuator;
>  extern StructRNA RNA_ActuatorSensor;
> +extern StructRNA RNA_AlwaysSensor;
> +extern StructRNA RNA_AndController;
>  extern StructRNA RNA_BooleanProperty;
>  extern StructRNA RNA_Brush;
> -extern StructRNA RNA_BrushClone;
>  extern StructRNA RNA_Camera;
>  extern StructRNA RNA_CharInfo;
>  extern StructRNA RNA_CollectionProperty;
>  extern StructRNA RNA_CollisionSensor;
> +extern StructRNA RNA_Controller;
>  extern StructRNA RNA_Curve;
>  extern StructRNA RNA_CurveMap;
>  extern StructRNA RNA_CurveMapPoint;
> @@ -51,11 +53,12 @@
>  extern StructRNA RNA_DelaySensor;
>  extern StructRNA RNA_EnumProperty;
>  extern StructRNA RNA_EnumPropertyItem;
> +extern StructRNA RNA_ExpressionController;
>  extern StructRNA RNA_FloatProperty;
> -extern StructRNA RNA_GameProperty;
>  extern StructRNA RNA_GameBooleanProperty;
>  extern StructRNA RNA_GameFloatProperty;
>  extern StructRNA RNA_GameIntProperty;
> +extern StructRNA RNA_GameProperty;
>  extern StructRNA RNA_GameStringProperty;
>  extern StructRNA RNA_GameTimeProperty;
>  extern StructRNA RNA_Group;
> @@ -94,19 +97,23 @@
>  extern StructRNA RNA_Mesh;
>  extern StructRNA RNA_MessageSensor;
>  extern StructRNA RNA_MetaBall;
> -extern StructRNA RNA_MetaElem;
> +extern StructRNA RNA_MetaElement;
>  extern StructRNA RNA_ModifierData;
>  extern StructRNA RNA_MouseSensor;
> +extern StructRNA RNA_NandController;
>  extern StructRNA RNA_NearSensor;
>  extern StructRNA RNA_Node;
>  extern StructRNA RNA_NodeTree;
> +extern StructRNA RNA_NorController;
>  extern StructRNA RNA_Object;
>  extern StructRNA RNA_Operator;
> +extern StructRNA RNA_OrController;
>  extern StructRNA RNA_PackedFile;
>  extern StructRNA RNA_Panel;
>  extern StructRNA RNA_PointerProperty;
>  extern StructRNA RNA_Property;
>  extern StructRNA RNA_PropertySensor;
> +extern StructRNA RNA_PythonController;
>  extern StructRNA RNA_RadarSensor;
>  extern StructRNA RNA_Radiosity;
>  extern StructRNA RNA_RandomSensor;
> @@ -123,9 +130,11 @@
>  extern StructRNA RNA_TextBox;
>  extern StructRNA RNA_TouchSensor;
>  extern StructRNA RNA_UnknownType;
> -extern StructRNA RNA_VFont;
> +extern StructRNA RNA_VectorFont;
>  extern StructRNA RNA_WindowManager;
>  extern StructRNA RNA_World;
> +extern StructRNA RNA_XnorController;
> +extern StructRNA RNA_XorController;
> /* Pointer
>   *
>
> Modified:  
> branches/blender2.5/blender/source/blender/makesrna/RNA_define.h
> ===================================================================
> ---  
> branches/blender2.5/blender/source/blender/makesrna/RNA_define.h	2008-12-02  
> 21:29:31 UTC (rev 17682)
> +++  
> branches/blender2.5/blender/source/blender/makesrna/RNA_define.h	2008-12-02  
> 23:45:11 UTC (rev 17683)
> @@ -41,6 +41,7 @@
> StructRNA *RNA_def_struct(BlenderRNA *brna, const char *identifier,  
> const char *from, const char *name);
>  void RNA_def_struct_sdna(StructRNA *srna, const char *structname);
> +void RNA_def_struct_sdna_from(StructRNA *srna, const char *structname,  
> const char *propname);
>  void RNA_def_struct_name_property(StructRNA *srna, PropertyRNA *prop);
>  void RNA_def_struct_flag(StructRNA *srna, int flag);
>  void RNA_def_struct_funcs(StructRNA *srna, const char *notify, const  
> char *refine);
>
> Modified:  
> branches/blender2.5/blender/source/blender/makesrna/intern/makesrna.c
> ===================================================================
> ---  
> branches/blender2.5/blender/source/blender/makesrna/intern/makesrna.c	2008-12-02  
> 21:29:31 UTC (rev 17682)
> +++  
> branches/blender2.5/blender/source/blender/makesrna/intern/makesrna.c	2008-12-02  
> 23:45:11 UTC (rev 17683)
> @@ -115,6 +115,14 @@
>  	fprintf(f, "\"");
>  }
> +static void rna_print_data_get(FILE *f, PropertyDefRNA *dp)
> +{
> +	if(dp->dnastructfromname && dp->dnastructfromprop)
> +		fprintf(f, "	%s *data= (%s*)(((%s*)ptr->data)->%s);\n",  
> dp->dnastructname, dp->dnastructname, dp->dnastructfromname,  
> dp->dnastructfromprop);
> +	else
> +		fprintf(f, "	%s *data= (%s*)(ptr->data);\n", dp->dnastructname,  
> dp->dnastructname);
> +}
> +
>  static char *rna_alloc_function_name(const char *structname, const char  
> *propname, const char *type)
>  {
>  	AllocDefRNA *alloc;
> @@ -185,7 +193,7 @@
>  			StringPropertyRNA *sprop= (StringPropertyRNA*)prop;
>  			fprintf(f, "static void %s(PointerRNA *ptr, char *value)\n", func);
>  			fprintf(f, "{\n");
> -			fprintf(f, "	%s *data= (%s*)ptr->data;\n", dp->dnastructname,  
> dp->dnastructname);
> +			rna_print_data_get(f, dp);
>  			fprintf(f, "	BLI_strncpy(value, data->%s, %d);\n", dp->dnaname,  
> sprop->maxlength);
>  			fprintf(f, "}\n\n");
>  			break;
> @@ -194,7 +202,7 @@
>  			if(prop->arraylength) {
>  				fprintf(f, "static %s %s(PointerRNA *ptr, int index)\n",  
> rna_type_type(prop), func);
>  				fprintf(f, "{\n");
> -				fprintf(f, "	%s *data= (%s*)ptr->data;\n", dp->dnastructname,  
> dp->dnastructname);
> +				rna_print_data_get(f, dp);
>  				if(dp->dnaarraylength == 1) {
>  					if(prop->type == PROP_BOOLEAN && dp->booleanbit)
>  						fprintf(f, "	return ((data->%s & (%d<<index)) != 0);\n",  
> dp->dnaname, dp->booleanbit);
> @@ -212,11 +220,13 @@
>  			else {
>  				fprintf(f, "static %s %s(PointerRNA *ptr)\n", rna_type_type(prop),  
> func);
>  				fprintf(f, "{\n");
> -				fprintf(f, "	%s *data= (%s*)ptr->data;\n", dp->dnastructname,  
> dp->dnastructname);
> +				rna_print_data_get(f, dp);
>  				if(prop->type == PROP_BOOLEAN && dp->booleanbit)
>  					fprintf(f, "	return (((data->%s) & %d) != 0);\n", dp->dnaname,  
> dp->booleanbit);
>  				else if(prop->type == PROP_ENUM && dp->enumbitflags)
>  					fprintf(f, "	return ((data->%s) & %d);\n", dp->dnaname,  
> rna_enum_bitmask(prop));
> +				else if(prop->type == PROP_POINTER && dp->dnapointerlevel == 0)
> +					fprintf(f, "	return (%s)&(data->%s);\n", rna_type_type(prop),  
> dp->dnaname);
>  				else
>  					fprintf(f, "	return (%s)(data->%s);\n", rna_type_type(prop),  
> dp->dnaname);
>  				fprintf(f, "}\n\n");
> @@ -291,7 +301,7 @@
>  			StringPropertyRNA *sprop= (StringPropertyRNA*)prop;
>  			fprintf(f, "static void %s(PointerRNA *ptr, const char *value)\n",  
> func);
>  			fprintf(f, "{\n");
> -			fprintf(f, "	%s *data= (%s*)ptr->data;\n", dp->dnastructname,  
> dp->dnastructname);
> +			rna_print_data_get(f, dp);
>  			fprintf(f, "	BLI_strncpy(data->%s, value, %d);\n", dp->dnaname,  
> sprop->maxlength);
>  			fprintf(f, "}\n\n");
>  			break;
> @@ -300,7 +310,7 @@
>  			if(prop->arraylength) {
>  				fprintf(f, "static void %s(PointerRNA *ptr, int index, %s  
> value)\n", func, rna_type_type(prop));
>  				fprintf(f, "{\n");
> -				fprintf(f, "	%s *data= (%s*)ptr->data;\n", dp->dnastructname,  
> dp->dnastructname);
> +				rna_print_data_get(f, dp);
>  				if(dp->dnaarraylength == 1) {
>  					if(prop->type == PROP_BOOLEAN && dp->booleanbit) {
>  						fprintf(f, "	if(value) data->%s |= (%d<<index);\n", dp->dnaname,  
> dp->booleanbit);
> @@ -326,7 +336,7 @@
>  			else {
>  				fprintf(f, "static void %s(PointerRNA *ptr, %s value)\n", func,  
> rna_type_type(prop));
>  				fprintf(f, "{\n");
> -				fprintf(f, "	%s *data= (%s*)ptr->data;\n", dp->dnastructname,  
> dp->dnastructname);
> +				rna_print_data_get(f, dp);
>  				if(prop->type == PROP_BOOLEAN && dp->booleanbit) {
>  					fprintf(f, "	if(value) data->%s |= %d;\n", dp->dnaname,  
> dp->booleanbit);
>  					fprintf(f, "	else data->%s &= ~%d;\n", dp->dnaname,  
> dp->booleanbit);
> @@ -365,12 +375,12 @@
> 		fprintf(f, "static int %s(PointerRNA *ptr)\n", func);
>  		fprintf(f, "{\n");
> -		fprintf(f, "	%s *data= (%s*)ptr->data;\n", dp->dnastructname,  
> dp->dnastructname);
> +		rna_print_data_get(f, dp);
>  		fprintf(f, "	return strlen(data->%s);\n", dp->dnaname);
>  		fprintf(f, "}\n\n");
>  	}
>  	else if(prop->type == PROP_COLLECTION) {
> -		if(prop->type == PROP_COLLECTION && (!dp->dnalengthname ||  
> !dp->dnaname)) {
> +		if(prop->type == PROP_COLLECTION && (!(dp->dnalengthname ||  
> dp->dnalengthfixed)|| !dp->dnaname)) {
>  			fprintf(stderr, "rna_def_property_length_func: %s.%s has no valid  
> dna info.\n", srna->identifier, prop->identifier);
>  			DefRNA.error= 1;
>  			return NULL;
> @@ -380,8 +390,11 @@
> 		fprintf(f, "static int %s(PointerRNA *ptr)\n", func);
>  		fprintf(f, "{\n");
> -		fprintf(f, "	%s *data= (%s*)ptr->data;\n", dp->dnastructname,  
> dp->dnastructname);
> -		fprintf(f, "	return (data->%s == NULL)? 0: data->%s;\n", dp->dnaname,  
> dp->dnalengthname);
> +		rna_print_data_get(f, dp);
> +		if(dp->dnalengthname)
> +			fprintf(f, "	return (data->%s == NULL)? 0: data->%s;\n",  
> dp->dnaname, dp->dnalengthname);
> +		else
> +			fprintf(f, "	return (data->%s == NULL)? 0: %d;\n", dp->dnaname,  
> dp->dnalengthfixed);
>  		fprintf(f, "}\n\n");
>  	}
> @@ -403,17 +416,20 @@
> 	func= rna_alloc_function_name(srna->identifier, prop->identifier,  
> "begin");
> -	if(dp->dnalengthname) {
> +	if(dp->dnalengthname || dp->dnalengthfixed) {
>  		fprintf(f, "static void %s(CollectionPropertyIterator *iter,  
> PointerRNA *ptr)\n", func);
>  		fprintf(f, "{\n");
> -		fprintf(f, "	%s *data= (%s*)ptr->data;\n", dp->dnastructname,  
> dp->dnastructname);
> -		fprintf(f, "	rna_iterator_array_begin(iter, data->%s,  
> sizeof(data->%s[0]), data->%s, NULL);\n", dp->dnaname, dp->dnaname,  
> dp->dnalengthname);
> +		rna_print_data_get(f, dp);
> +		if(dp->dnalengthname)
> +			fprintf(f, "	rna_iterator_array_begin(iter, data->%s,  
> sizeof(data->%s[0]), data->%s, NULL);\n", dp->dnaname, dp->dnaname,  
> dp->dnalengthname);
> +		else
> +			fprintf(f, "	rna_iterator_array_begin(iter, data->%s,  
> sizeof(data->%s[0]), %d, NULL);\n", dp->dnaname, dp->dnaname,  
> dp->dnalengthfixed);
>  		fprintf(f, "}\n\n");
>  	}
>  	else {
>  		fprintf(f, "static void %s(CollectionPropertyIterator *iter,  
> PointerRNA *ptr)\n", func);
>  		fprintf(f, "{\n");
> -		fprintf(f, "	%s *data= (%s*)ptr->data;\n", dp->dnastructname,  
> dp->dnastructname);
> +		rna_print_data_get(f, dp);
>  		fprintf(f, "	rna_iterator_listbase_begin(iter, &data->%s, NULL);\n",  
> dp->dnaname);
>  		fprintf(f, "}\n\n");
>  	}
> @@ -502,7 +518,7 @@
>  				if(!cprop->begin)
>
> @@ Diff output truncated at 10240 characters. @@
>
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs



-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/


More information about the Bf-committers mailing list