[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
Brecht Van Lommel
brecht at blender.org
Wed Dec 3 00:45:11 CET 2008
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. @@
More information about the Bf-blender-cvs
mailing list