[Bf-blender-cvs] [5611237] master: Fix T45699: own regression w/ looptri update

Campbell Barton noreply at git.blender.org
Mon Sep 14 08:10:04 CEST 2015


Commit: 5611237391db8badf5e64dc559b5ac456631e1de
Author: Campbell Barton
Date:   Mon Sep 14 15:55:43 2015 +1000
Branches: master
https://developer.blender.org/rB5611237391db8badf5e64dc559b5ac456631e1de

Fix T45699: own regression w/ looptri update

Baking was still checking tessface in parts.

===================================================================

M	source/blender/editors/object/object_bake.c
M	source/blender/render/intern/source/multires_bake.c

===================================================================

diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c
index bd847fc..ecaa05a 100644
--- a/source/blender/editors/object/object_bake.c
+++ b/source/blender/editors/object/object_bake.c
@@ -215,7 +215,7 @@ static DerivedMesh *multiresbake_create_loresdm(Scene *scene, Object *ob, int *l
 		tmp_mmd.simple = true;
 	}
 
-	DM_set_only_copy(cddm, CD_MASK_BAREMESH | CD_MASK_MFACE | CD_MASK_MTFACE);
+	DM_set_only_copy(cddm, CD_MASK_BAREMESH);
 
 	tmp_mmd.lvl = *lvl;
 	tmp_mmd.sculptlvl = *lvl;
@@ -283,23 +283,6 @@ static void clear_single_image(Image *image, ClearFlag flag)
 	}
 }
 
-static void clear_images(MTFace *mtface, int totface, ClearFlag flag)
-{
-	int a;
-
-	for (a = 0; a < totface; a++) {
-		mtface[a].tpage->id.flag &= ~LIB_DOIT;
-	}
-
-	for (a = 0; a < totface; a++) {
-		clear_single_image(mtface[a].tpage, flag);
-	}
-
-	for (a = 0; a < totface; a++) {
-		mtface[a].tpage->id.flag &= ~LIB_DOIT;
-	}
-}
-
 static void clear_images_poly(MTexPoly *mtpoly, int totpoly, ClearFlag flag)
 {
 	int a;
@@ -342,7 +325,6 @@ static int multiresbake_image_exec_locked(bContext *C, wmOperator *op)
 				clear_flag = CLEAR_DISPLACEMENT;
 			}
 
-			clear_images(me->mtface, me->totface, clear_flag);
 			clear_images_poly(me->mtpoly, me->totpoly, clear_flag);
 		}
 		CTX_DATA_END;
@@ -440,7 +422,7 @@ static void multiresbake_startjob(void *bkv, short *stop, short *do_update, floa
 	if (bkj->bake_clear) {  /* clear images */
 		for (data = bkj->data.first; data; data = data->next) {
 			DerivedMesh *dm = data->lores_dm;
-			MTFace *mtface = CustomData_get_layer(&dm->faceData, CD_MTFACE);
+			MTexPoly *mtexpoly = CustomData_get_layer(&dm->polyData, CD_MTEXPOLY);
 			ClearFlag clear_flag = 0;
 
 			if (bkj->mode == RE_BAKE_NORMALS) {
@@ -450,7 +432,7 @@ static void multiresbake_startjob(void *bkv, short *stop, short *do_update, floa
 				clear_flag = CLEAR_DISPLACEMENT;
 			}
 
-			clear_images(mtface, dm->getNumTessFaces(dm), clear_flag);
+			clear_images_poly(mtexpoly, dm->getNumPolys(dm), clear_flag);
 		}
 	}
 
diff --git a/source/blender/render/intern/source/multires_bake.c b/source/blender/render/intern/source/multires_bake.c
index 5fbd980..0223f76 100644
--- a/source/blender/render/intern/source/multires_bake.c
+++ b/source/blender/render/intern/source/multires_bake.c
@@ -1179,20 +1179,20 @@ static void apply_ao_callback(DerivedMesh *lores_dm, DerivedMesh *hires_dm, void
 
 static void count_images(MultiresBakeRender *bkr)
 {
-	int a, totface;
+	int a, totpoly;
 	DerivedMesh *dm = bkr->lores_dm;
-	MTFace *mtface = CustomData_get_layer(&dm->faceData, CD_MTFACE);
+	MTexPoly *mtexpoly = CustomData_get_layer(&dm->polyData, CD_MTEXPOLY);
 
 	BLI_listbase_clear(&bkr->image);
 	bkr->tot_image = 0;
 
-	totface = dm->getNumTessFaces(dm);
+	totpoly = dm->getNumPolys(dm);
 
-	for (a = 0; a < totface; a++)
-		mtface[a].tpage->id.flag &= ~LIB_DOIT;
+	for (a = 0; a < totpoly; a++)
+		mtexpoly[a].tpage->id.flag &= ~LIB_DOIT;
 
-	for (a = 0; a < totface; a++) {
-		Image *ima = mtface[a].tpage;
+	for (a = 0; a < totpoly; a++) {
+		Image *ima = mtexpoly[a].tpage;
 		if ((ima->id.flag & LIB_DOIT) == 0) {
 			LinkData *data = BLI_genericNodeN(ima);
 			BLI_addtail(&bkr->image, data);
@@ -1201,8 +1201,8 @@ static void count_images(MultiresBakeRender *bkr)
 		}
 	}
 
-	for (a = 0; a < totface; a++)
-		mtface[a].tpage->id.flag &= ~LIB_DOIT;
+	for (a = 0; a < totpoly; a++)
+		mtexpoly[a].tpage->id.flag &= ~LIB_DOIT;
 }
 
 static void bake_images(MultiresBakeRender *bkr, MultiresBakeResult *result)




More information about the Bf-blender-cvs mailing list