[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41949] branches/bmesh/blender/source/ blender/blenkernel/intern: Fix [#29256] Import images as planes add on doesn't work correctly in bmesh

Andrew Wiggin ender79bl at gmail.com
Thu Nov 17 19:48:49 CET 2011


Revision: 41949
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41949
Author:   ender79
Date:     2011-11-17 18:48:49 +0000 (Thu, 17 Nov 2011)
Log Message:
-----------
Fix [#29256] Import images as planes add on doesn't work correctly in bmesh

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c
    branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c
    branches/bmesh/blender/source/blender/blenkernel/intern/subsurf_ccg.c

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c	2011-11-17 18:41:37 UTC (rev 41948)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c	2011-11-17 18:48:49 UTC (rev 41949)
@@ -1454,6 +1454,12 @@
 	}
 #endif /* WITH_GAMEENGINE */
 
+	/* Re-tesselation is necessary to push render data (uvs, textures, colors)
+	   from loops and polys onto the tessfaces. This may be currently be redundant
+	   in cases where the render mode doesn't use these inputs, but ideally
+	   eventually tesselation would happen on-demand, and this is one of the primary
+	   places it would be needed. */
+	finaldm->recalcTesselation(finaldm);
 	finaldm->calcNormals(finaldm);
 
 	*final_r = finaldm;

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c	2011-11-17 18:41:37 UTC (rev 41948)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c	2011-11-17 18:48:49 UTC (rev 41949)
@@ -1644,8 +1644,7 @@
 	dm->getTessFaceDataArray = DM_get_tessface_data_layer;
 
 	dm->calcNormals = CDDM_calc_normals;
-	//doesn't work yet for all cases
-	//dm->recalcTesselation = CDDM_recalc_tesselation;
+	dm->recalcTesselation = CDDM_recalc_tesselation;
 
 	dm->getVertCos = cdDM_getVertCos;
 	dm->getVertCo = cdDM_getVertCo;

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/subsurf_ccg.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/subsurf_ccg.c	2011-11-17 18:41:37 UTC (rev 41948)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/subsurf_ccg.c	2011-11-17 18:48:49 UTC (rev 41949)
@@ -2758,6 +2758,11 @@
 	return ccgdm->pbvh;
 }
 
+static void ccgDM_recalcTesselection(DerivedMesh *UNUSED(dm))
+{
+	/* Nothing to do: CCG handles creating its own tessfaces */
+}
+
 static void ccgDM_calcNormals(DerivedMesh *UNUSED(dm))
 {
 	/* Nothing to do: CCG calculates normals during drawing */
@@ -2853,6 +2858,7 @@
 	ccgdm->dm.getTessFaceData = DM_get_face_data;
 
 	ccgdm->dm.calcNormals = ccgDM_calcNormals;
+	ccgdm->dm.recalcTesselation = ccgDM_recalcTesselection;
 
 	ccgdm->dm.getVertCos = cgdm_getVertCos;
 	ccgdm->dm.foreachMappedVert = cgdm_foreachMappedVert;




More information about the Bf-blender-cvs mailing list