[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18516] branches/blender2.5/blender/source /blender: RNA

Brecht Van Lommel brecht at blender.org
Thu Jan 15 05:22:26 CET 2009


Revision: 18516
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18516
Author:   blendix
Date:     2009-01-15 05:22:23 +0100 (Thu, 15 Jan 2009)

Log Message:
-----------
RNA
* Work around bScreen/Screen DNA name patching, so bScreen does not
  require manual callbacks to be written for properties.
* Added SpaceLink and SpaceImage RNA.
* Fix issue initializing ID property arrays with default values.

DNA
* Some DNA changes for space image.
* And a fix for corrupt clone image pointer in reading brushes.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_scene_types.h
    branches/blender2.5/blender/source/blender/makesdna/DNA_space_types.h
    branches/blender2.5/blender/source/blender/makesrna/RNA_access.h
    branches/blender2.5/blender/source/blender/makesrna/intern/CMakeLists.txt
    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_internal.h
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_material.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_scene.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_screen.c

Added Paths:
-----------
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_space.c

Modified: branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c	2009-01-15 04:13:38 UTC (rev 18515)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c	2009-01-15 04:22:23 UTC (rev 18516)
@@ -1490,6 +1490,8 @@
 				if(mtex)
 					mtex->tex= newlibadr_us(fd, brush->id.lib, mtex->tex);
 			}
+
+			brush->clone.image= newlibadr_us(fd, brush->id.lib, brush->clone.image);
 		}
 	}
 }
@@ -5237,6 +5239,7 @@
 				break;
 		}
 	}
+
 	/* main region */
 	ar= MEM_callocN(sizeof(ARegion), "area region from do_versions");
 	

Modified: branches/blender2.5/blender/source/blender/makesdna/DNA_scene_types.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesdna/DNA_scene_types.h	2009-01-15 04:13:38 UTC (rev 18515)
+++ branches/blender2.5/blender/source/blender/makesdna/DNA_scene_types.h	2009-01-15 04:22:23 UTC (rev 18516)
@@ -431,6 +431,8 @@
 	short uvcalc_mapdir;
 	short uvcalc_mapalign;
 	short uvcalc_flag;
+	short uv_flag, uv_selectmode;
+	short uv_pad[2];
 
 	/* Auto-IK */
 	short autoik_chainlen;
@@ -838,6 +840,16 @@
 #define UVCALC_NO_ASPECT_CORRECT	2	/* would call this UVCALC_ASPECT_CORRECT, except it should be default with old file */
 #define UVCALC_TRANSFORM_CORRECT	4	/* adjust UV's while transforming to avoid distortion */
 
+/* toolsettings->uv_flag */
+#define UV_SYNC_SELECTION	1
+#define UV_SHOW_SAME_IMAGE	2
+
+/* toolsettings->uv_selectmode */
+#define UV_SELECT_VERTEX	0
+#define UV_SELECT_EDGE		1 /* not implemented */
+#define UV_SELECT_FACE		2
+#define UV_SELECT_ISLAND	3
+
 /* toolsettings->edge_mode */
 #define EDGE_MODE_SELECT				0
 #define EDGE_MODE_TAG_SEAM				1

Modified: branches/blender2.5/blender/source/blender/makesdna/DNA_space_types.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesdna/DNA_space_types.h	2009-01-15 04:13:38 UTC (rev 18515)
+++ branches/blender2.5/blender/source/blender/makesdna/DNA_space_types.h	2009-01-15 04:22:23 UTC (rev 18516)
@@ -222,30 +222,26 @@
 	SpaceLink *next, *prev;
 	ListBase regionbase;		/* storage of regions for inactive spaces */
 	int spacetype;
-	float blockscale;
 
+	float blockscale;
 	short blockhandler[8];
-
-	View2D v2d; /* depricated, copied to region */
 	
 	struct Image *image;
 	struct ImageUser iuser;
 	
 	struct CurveMapping *cumap;
-	short mode, menunr;
-	short imanr;
+	short menunr, imanr, pad2;
 	short curtile; /* the currently active tile of the image when tile is enabled, is kept in sync with the active faces tile */
 	int flag;
-	short selectmode;
 	short imtypenr, lock;
-	short pin;
-	float zoom;
+	short pin, pad3;
 	char dt_uv; /* UV draw type */
 	char sticky; /* sticky selection type */
 	char dt_uvstretch;
-	char pad[5];
+	char pad;
 	
 	float xof, yof;					/* user defined offset, image is centered */
+	float zoom, pad4;				/* user defined zoom level */
 	float centx, centy;				/* storage for offset while render drawing */
 	
 	struct bGPdata *gpd;			/* grease pencil data */
@@ -544,10 +540,6 @@
 #define MOVIEFILE_ICON		1024 /* movie file that preview can't load */
 #define FOLDERFILE			2048 /* represents folders for filtering */
 
-/* SpaceImage->mode */
-#define SI_TEXTURE		0
-#define SI_SHOW			1
-
 /* SpaceImage->dt_uv */
 #define SI_UVDT_OUTLINE	0
 #define SI_UVDT_DASH	1
@@ -565,12 +557,6 @@
 #define SI_STICKY_DISABLE	1
 #define SI_STICKY_VERTEX	2
 
-/* SpaceImage->selectmode */
-#define SI_SELECT_VERTEX	0
-#define SI_SELECT_EDGE		1 /* not implemented */
-#define SI_SELECT_FACE		2
-#define SI_SELECT_ISLAND	3
-
 /* SpaceImage->flag */
 #define SI_BE_SQUARE	1<<0
 #define SI_EDITTILE		1<<1
@@ -590,8 +576,8 @@
 		/* next two for render window dislay */
 #define SI_PREVSPACE	1<<15
 #define SI_FULLWINDOW	1<<16
-#define SI_SYNC_UVSEL	1<<17
-#define SI_LOCAL_UV		1<<18
+#define SI_DEPRECATED4	1<<17
+#define SI_DEPRECATED5	1<<18
 		/* this means that the image is drawn until it reaches the view edge,
 		 * in the image view, its unrelated to the 'tile' mode for texface */
 #define SI_DRAW_TILE	1<<19 

Modified: branches/blender2.5/blender/source/blender/makesrna/RNA_access.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/RNA_access.h	2009-01-15 04:13:38 UTC (rev 18515)
+++ branches/blender2.5/blender/source/blender/makesrna/RNA_access.h	2009-01-15 04:22:23 UTC (rev 18516)
@@ -218,6 +218,9 @@
 extern StructRNA RNA_SoftbodyModifier;
 extern StructRNA RNA_Sound;
 extern StructRNA RNA_SoundSequence;
+extern StructRNA RNA_Space;
+extern StructRNA RNA_SpaceImageEditor;
+extern StructRNA RNA_SpaceUVEditor;
 extern StructRNA RNA_SpeedControlSequence;
 extern StructRNA RNA_SpotLamp;
 extern StructRNA RNA_StringProperty;

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/CMakeLists.txt
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/CMakeLists.txt	2009-01-15 04:13:38 UTC (rev 18515)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/CMakeLists.txt	2009-01-15 04:22:23 UTC (rev 18516)
@@ -63,6 +63,7 @@
      rna_sensor.c
      rna_sequence.c
      rna_sound.c
+     rna_space.c
      rna_text.c
      rna_texture.c
      rna_userdef.c
@@ -109,6 +110,7 @@
      rna_sensor_gen.c
      rna_sequence_gen.c
      rna_sound_gen.c
+     rna_space_gen.c
      rna_text_gen.c
      rna_texture_gen.c
      rna_userdef_gen.c

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/makesrna.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/makesrna.c	2009-01-15 04:13:38 UTC (rev 18515)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/makesrna.c	2009-01-15 04:22:23 UTC (rev 18516)
@@ -579,7 +579,14 @@
 	PropertyDefRNA *dp;
 
 	for(ds=DefRNA.structs.first; ds; ds=ds->next) {
+		/* DNA name for Screen is patched in 2.5, we do the reverse here .. */
+		if(ds->dnaname && strcmp(ds->dnaname, "Screen") == 0)
+			ds->dnaname= "bScreen";
+
 		for(dp=ds->properties.first; dp; dp=dp->next) {
+			if(dp->dnastructname && strcmp(dp->dnastructname, "Screen") == 0)
+				dp->dnastructname= "bScreen";
+
 			if(dp->dnatype) {
 				if(dp->prop->type == PROP_POINTER) {
 					PointerPropertyRNA *pprop= (PointerPropertyRNA*)dp->prop;
@@ -946,6 +953,7 @@
 	{"rna_scriptlink.c", RNA_def_scriptlink},
 	{"rna_sensor.c", RNA_def_sensor},
 	{"rna_sequence.c", RNA_def_sequence},
+	{"rna_space.c", RNA_def_space},
 	{"rna_text.c", RNA_def_text},
 	{"rna_sound.c", RNA_def_sound},
 	{"rna_userdef.c", RNA_def_userdef},

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c	2009-01-15 04:13:38 UTC (rev 18515)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c	2009-01-15 04:22:23 UTC (rev 18516)
@@ -580,8 +580,10 @@
 		return ((int*)IDP_Array(idprop))[index];
 	else if(bprop->getarray)
 		return bprop->getarray(ptr, index);
+	else if(bprop->defaultarray)
+		return bprop->defaultarray[index];
 	else
-		return bprop->defaultarray[index];
+		return 0;
 }
 
 void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, int index, int value)
@@ -604,7 +606,10 @@
 		if(group) {
 			idprop= IDP_New(IDP_ARRAY, val, (char*)prop->identifier);
 			IDP_AddToGroup(group, idprop);
-			memcpy(idprop->data.pointer, bprop->defaultarray, sizeof(int)*prop->arraylength);
+			if(bprop->defaultarray)
+				memcpy(idprop->data.pointer, bprop->defaultarray, sizeof(int)*prop->arraylength);
+			else
+				memset(idprop->data.pointer, 0, sizeof(int)*prop->arraylength);
 			((int*)idprop->data.pointer)[index]= value;
 		}
 	}
@@ -653,8 +658,10 @@
 		return ((int*)IDP_Array(idprop))[index];
 	else if(iprop->getarray)
 		return iprop->getarray(ptr, index);
+	else if(iprop->defaultarray)
+		return iprop->defaultarray[index];
 	else
-		return iprop->defaultarray[index];
+		return 0.0f;
 }
 
 void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, int index, int value)
@@ -677,7 +684,10 @@
 		if(group) {
 			idprop= IDP_New(IDP_ARRAY, val, (char*)prop->identifier);
 			IDP_AddToGroup(group, idprop);
-			memcpy(idprop->data.pointer, iprop->defaultarray, sizeof(int)*prop->arraylength);
+			if(iprop->defaultarray)
+				memcpy(idprop->data.pointer, iprop->defaultarray, sizeof(int)*prop->arraylength);
+			else
+				memset(idprop->data.pointer, 0, sizeof(int)*prop->arraylength);
 			((int*)idprop->data.pointer)[index]= value;
 		}
 	}
@@ -739,8 +749,10 @@
 	}
 	else if(fprop->getarray)
 		return fprop->getarray(ptr, index);
+	else if(fprop->defaultarray)
+		return fprop->defaultarray[index];
 	else
-		return fprop->defaultarray[index];
+		return 0.0f;
 }
 
 void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, int index, float value)
@@ -768,7 +780,10 @@
 		if(group) {
 			idprop= IDP_New(IDP_ARRAY, val, (char*)prop->identifier);
 			IDP_AddToGroup(group, idprop);
-			memcpy(idprop->data.pointer, fprop->defaultarray, sizeof(float)*prop->arraylength);
+			if(fprop->defaultarray)
+				memcpy(idprop->data.pointer, fprop->defaultarray, sizeof(float)*prop->arraylength);
+			else
+				memset(idprop->data.pointer, 0, sizeof(float)*prop->arraylength);
 			((float*)IDP_Array(idprop))[index]= value;
 		}
 	}

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_internal.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_internal.h	2009-01-15 04:13:38 UTC (rev 18515)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_internal.h	2009-01-15 04:22:23 UTC (rev 18516)
@@ -132,6 +132,7 @@
 void RNA_def_scriptlink(struct BlenderRNA *brna);
 void RNA_def_sensor(struct BlenderRNA *brna);
 void RNA_def_sequence(struct BlenderRNA *brna);
+void RNA_def_space(struct BlenderRNA *brna);
 void RNA_def_text(struct BlenderRNA *brna);
 void RNA_def_texture(struct BlenderRNA *brna);
 void RNA_def_sound(struct BlenderRNA *brna);

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_material.c

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list