[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44146] branches/bmesh/blender/source/ blender: bmesh todo. making an image local wasn' t dealing with mesh polygon texface data.

Campbell Barton ideasman42 at gmail.com
Thu Feb 16 13:19:12 CET 2012


Revision: 44146
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44146
Author:   campbellbarton
Date:     2012-02-16 12:19:02 +0000 (Thu, 16 Feb 2012)
Log Message:
-----------
bmesh todo. making an image local wasn't dealing with mesh polygon texface data.

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/blenkernel/intern/image.c
    branches/bmesh/blender/source/blender/bmesh/operators/bmo_mirror.c

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/image.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/image.c	2012-02-16 11:52:02 UTC (rev 44145)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/image.c	2012-02-16 12:19:02 UTC (rev 44146)
@@ -327,8 +327,6 @@
 	   match id_make_local pattern. */
 }
 
-/* BMESH_TODO - MTexPoly, currently this function only does 'me->mtface' */
-
 void make_local_image(struct Image *ima)
 {
 	Main *bmain= G.main;
@@ -384,6 +382,25 @@
 				}
 			}
 		}
+
+		if(me->mtpoly) {
+			MTexPoly *mtpoly;
+			int a, i;
+
+			for(i=0; i<me->pdata.totlayer; i++) {
+				if(me->pdata.layers[i].type == CD_MTEXPOLY) {
+					mtpoly= (MTexPoly*)me->pdata.layers[i].data;
+
+					for(a=0; a<me->totpoly; a++, mtpoly++) {
+						if(mtpoly->tpage == ima) {
+							if(me->id.lib) is_lib= TRUE;
+							else is_local= TRUE;
+						}
+					}
+				}
+			}
+		}
+
 	}
 
 	if(is_local && is_lib == FALSE) {
@@ -445,6 +462,28 @@
 					}
 				}
 			}
+
+			if(me->mtpoly) {
+				MTexPoly *mtpoly;
+				int a, i;
+
+				for(i=0; i<me->pdata.totlayer; i++) {
+					if(me->pdata.layers[i].type == CD_MTEXPOLY) {
+						mtpoly= (MTexPoly*)me->pdata.layers[i].data;
+
+						for(a=0; a<me->totpoly; a++, mtpoly++) {
+							if(mtpoly->tpage == ima) {
+								mtpoly->tpage = ima_new;
+								if(ima_new->id.us == 0) {
+									mtpoly->tpage->id.us= 1;
+								}
+								id_lib_extern((ID*)ima_new);
+							}
+						}
+					}
+				}
+			}
+
 			me= me->id.next;
 		}
 	}

Modified: branches/bmesh/blender/source/blender/bmesh/operators/bmo_mirror.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/operators/bmo_mirror.c	2012-02-16 11:52:02 UTC (rev 44145)
+++ branches/bmesh/blender/source/blender/bmesh/operators/bmo_mirror.c	2012-02-16 12:19:02 UTC (rev 44146)
@@ -69,7 +69,7 @@
 		BLI_array_growone(vmap);
 		vmap[i] = v;
 
-		/* BMESH_TODO, double check this is being made dirty, 99% sure it is - campbell */
+		/* BMESH_TODO, double check this is being used, calling following operators will overwrite anyway - campbell */
 		BM_elem_index_set(v2, i); /* set_dirty! */
 		v2 = BM_iter_step(&iter);
 




More information about the Bf-blender-cvs mailing list