[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30889] trunk/blender/source/blender: bugfix [#22859] Multi-user images cant be made into single user in texure panel.

Campbell Barton ideasman42 at gmail.com
Fri Jul 30 08:09:23 CEST 2010


Revision: 30889
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30889
Author:   campbellbarton
Date:     2010-07-30 08:09:23 +0200 (Fri, 30 Jul 2010)

Log Message:
-----------
bugfix [#22859] Multi-user images cant be made into single user in texure panel.
turns out this isnt exactly a bug since support was never written for this but may as well support it.
now rna/py can do image.copy() too.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_image.h
    trunk/blender/source/blender/blenkernel/intern/deform.c
    trunk/blender/source/blender/blenkernel/intern/image.c
    trunk/blender/source/blender/blenkernel/intern/library.c
    trunk/blender/source/blender/blenkernel/intern/node.c
    trunk/blender/source/blender/makesdna/DNA_image_types.h

Modified: trunk/blender/source/blender/blenkernel/BKE_image.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_image.h	2010-07-30 05:51:32 UTC (rev 30888)
+++ trunk/blender/source/blender/blenkernel/BKE_image.h	2010-07-30 06:09:23 UTC (rev 30889)
@@ -159,7 +159,7 @@
 void BKE_image_print_memlist(void);
 
 /* empty image block, of similar type and filename */
-struct Image *BKE_image_copy(struct Image *ima);
+struct Image *copy_image(struct Image *ima);
 
 /* merge source into dest, and free source */
 void BKE_image_merge(struct Image *dest, struct Image *source);

Modified: trunk/blender/source/blender/blenkernel/intern/deform.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/deform.c	2010-07-30 05:51:32 UTC (rev 30888)
+++ trunk/blender/source/blender/blenkernel/intern/deform.c	2010-07-30 06:09:23 UTC (rev 30889)
@@ -471,6 +471,7 @@
 #undef IS_SEPARATOR
 
 	sprintf (name, "%s%s%s%s", prefix, replace, suffix, number);
+	printf("'%s' --> '%s'\n", from_name, name);
 }
 
 float defvert_find_weight(const struct MDeformVert *dvert, int group_num)

Modified: trunk/blender/source/blender/blenkernel/intern/image.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/image.c	2010-07-30 05:51:32 UTC (rev 30888)
+++ trunk/blender/source/blender/blenkernel/intern/image.c	2010-07-30 06:09:23 UTC (rev 30889)
@@ -287,17 +287,25 @@
 }
 
 /* empty image block, of similar type and filename */
-Image *BKE_image_copy(Image *ima)
+Image *copy_image(Image *ima)
 {
-	Image *new= image_alloc(ima->id.name+2, ima->source, ima->type);
+	Image *nima= image_alloc(ima->id.name+2, ima->source, ima->type);
 
-	BLI_strncpy(new->name, ima->name, sizeof(ima->name));
+	BLI_strncpy(nima->name, ima->name, sizeof(ima->name));
+
+	nima->flag= ima->flag;
+	nima->tpageflag= ima->tpageflag;
 	
-	new->gen_x= ima->gen_x;
-	new->gen_y= ima->gen_y;
-	new->gen_type= ima->gen_type;
-	
-	return new;
+	nima->gen_x= ima->gen_x;
+	nima->gen_y= ima->gen_y;
+	nima->gen_type= ima->gen_type;
+
+	nima->animspeed= ima->animspeed;
+
+	nima->aspx= ima->aspx;
+	nima->aspy= ima->aspy;
+
+	return nima;
 }
 
 void BKE_image_merge(Image *dest, Image *source)

Modified: trunk/blender/source/blender/blenkernel/intern/library.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/library.c	2010-07-30 05:51:32 UTC (rev 30888)
+++ trunk/blender/source/blender/blenkernel/intern/library.c	2010-07-30 06:09:23 UTC (rev 30889)
@@ -262,7 +262,8 @@
 			if(!test) *newid= (ID*)copy_texture((Tex*)id);
 			return 1;
 		case ID_IM:
-			return 0; /* not implemented */
+			if(!test) *newid= (ID*)copy_image((Image*)id);
+			return 1;
 		case ID_WV:
 			return 0; /* deprecated */
 		case ID_LT:

Modified: trunk/blender/source/blender/blenkernel/intern/node.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/node.c	2010-07-30 05:51:32 UTC (rev 30888)
+++ trunk/blender/source/blender/blenkernel/intern/node.c	2010-07-30 06:09:23 UTC (rev 30889)
@@ -2565,7 +2565,7 @@
 		if(ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) {
 			if(node->id) {
 				if(node->flag & NODE_DO_OUTPUT)
-					node->new_node->id= (ID *)BKE_image_copy((Image *)node->id);
+					node->new_node->id= (ID *)copy_image((Image *)node->id);
 				else
 					node->new_node->id= NULL;
 			}

Modified: trunk/blender/source/blender/makesdna/DNA_image_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_image_types.h	2010-07-30 05:51:32 UTC (rev 30888)
+++ trunk/blender/source/blender/makesdna/DNA_image_types.h	2010-07-30 06:09:23 UTC (rev 30889)
@@ -105,7 +105,7 @@
 
 /* **************** IMAGE ********************* */
 
-/* flag */
+/* Image.flag */
 #define IMA_FIELDS		1
 #define IMA_STD_FIELD	2
 #define IMA_DO_PREMUL	4
@@ -115,7 +115,7 @@
 #define IMA_DEPRECATED	64
 #define IMA_OLD_PREMUL	128
 
-/* tpageflag */
+/* Image.tpageflag */
 #define IMA_TILES			1
 #define IMA_TWINANIM		2
 #define IMA_COLCYCLE		4	/* Depreciated */





More information about the Bf-blender-cvs mailing list