[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48851] trunk/blender/source/blender/ blenloader/intern/readfile.c: Fix #32082: face textures lost when linking scene from another file

Sergey Sharybin sergey.vfx at gmail.com
Thu Jul 12 09:30:51 CEST 2012


Revision: 48851
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48851
Author:   nazgul
Date:     2012-07-12 07:30:50 +0000 (Thu, 12 Jul 2012)
Log Message:
-----------
Fix #32082: face textures lost when linking scene from another file

Issue was caused by missing expand for MTexPoly-s tpages.

Modified Paths:
--------------
    trunk/blender/source/blender/blenloader/intern/readfile.c

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2012-07-12 07:15:32 UTC (rev 48850)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2012-07-12 07:30:50 UTC (rev 48851)
@@ -8519,7 +8519,6 @@
 static void expand_mesh(FileData *fd, Main *mainvar, Mesh *me)
 {
 	CustomDataLayer *layer;
-	MTFace *mtf;
 	TFace *tf;
 	int a, i;
 	
@@ -8541,17 +8540,37 @@
 		}
 	}
 
-	for (a = 0; a < me->fdata.totlayer; a++) {
-		layer = &me->fdata.layers[a];
-		
-		if (layer->type == CD_MTFACE) {
-			mtf = (MTFace*)layer->data;
-			for (i = 0; i < me->totface; i++, mtf++) {
-				if (mtf->tpage)
-					expand_doit(fd, mainvar, mtf->tpage);
+	if (me->mface && !me->mpoly) {
+		MTFace *mtf;
+
+		for (a = 0; a < me->fdata.totlayer; a++) {
+			layer = &me->fdata.layers[a];
+
+			if (layer->type == CD_MTFACE) {
+				mtf = (MTFace *) layer->data;
+				for (i = 0; i < me->totface; i++, mtf++) {
+					if (mtf->tpage)
+						expand_doit(fd, mainvar, mtf->tpage);
+				}
 			}
 		}
 	}
+	else {
+		MTexPoly *mtp;
+
+		for (a = 0; a < me->pdata.totlayer; a++) {
+			layer = &me->pdata.layers[a];
+
+			if (layer->type == CD_MTEXPOLY) {
+				mtp = (MTexPoly *) layer->data;
+
+				for (i = 0; i < me->totpoly; i++, mtp++) {
+					if (mtp->tpage)
+						expand_doit(fd, mainvar, mtp->tpage);
+				}
+			}
+		}
+	}
 }
 
 /* temp struct used to transport needed info to expand_constraint_cb() */




More information about the Bf-blender-cvs mailing list