[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42299] branches/bmesh/blender/source/ blender: More DM func renames, fixing some build breaks, renaming more stuff, also seems like it might be fixing the recent CDDM_copy corruption/ leak bug

Andrew Wiggin ender79bl at gmail.com
Wed Nov 30 19:04:02 CET 2011


Revision: 42299
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42299
Author:   ender79
Date:     2011-11-30 18:03:56 +0000 (Wed, 30 Nov 2011)
Log Message:
-----------
More DM func renames, fixing some build breaks, renaming more stuff, also seems like it might be fixing the recent CDDM_copy corruption/leak bug

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/blenkernel/BKE_DerivedMesh.h
    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/editderivedbmesh.c
    branches/bmesh/blender/source/blender/blenkernel/intern/navmesh_conversion.c
    branches/bmesh/blender/source/blender/blenkernel/intern/particle_system.c
    branches/bmesh/blender/source/blender/blenkernel/intern/subsurf_ccg.c
    branches/bmesh/blender/source/blender/bmesh/intern/in-progress/BME_conversions.c
    branches/bmesh/blender/source/blender/collada/GeometryExporter.cpp
    branches/bmesh/blender/source/blender/editors/armature/meshlaplacian.c
    branches/bmesh/blender/source/blender/editors/space_view3d/drawmesh.c
    branches/bmesh/blender/source/blender/gpu/intern/gpu_buffers.c
    branches/bmesh/blender/source/blender/modifiers/intern/MOD_ngoninterp.c
    branches/bmesh/blender/source/blender/modifiers/intern/MOD_ocean.c

Modified: branches/bmesh/blender/source/blender/blenkernel/BKE_DerivedMesh.h
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/BKE_DerivedMesh.h	2011-11-30 16:29:26 UTC (rev 42298)
+++ branches/bmesh/blender/source/blender/blenkernel/BKE_DerivedMesh.h	2011-11-30 18:03:56 UTC (rev 42299)
@@ -122,7 +122,7 @@
 struct DerivedMesh {
 	/* Private DerivedMesh data, only for internal DerivedMesh use */
 	CustomData vertData, edgeData, faceData, loopData, polyData;
-	int numVertData, numEdgeData, numFaceData, numLoopData, numPolyData;
+	int numVertData, numEdgeData, numTessFaceData, numLoopData, numPolyData;
 	int needsFree; /* checked on ->release, is set to 0 for cached results */
 	int deformedOnly; /* set by modifier stack if only deformed from original */
 	BVHCache bvhCache;
@@ -141,6 +141,7 @@
 	int (*getNumVerts)(DerivedMesh *dm);
 	int (*getNumEdges)(DerivedMesh *dm);
 	int (*getNumTessFaces)(DerivedMesh *dm);
+	int (*getNumLoops)(DerivedMesh *dm);
 	int (*getNumPolys)(DerivedMesh *dm);
 
 	/* copy a single vert/edge/tesselated face from the derived mesh into

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c	2011-11-30 16:29:26 UTC (rev 42298)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c	2011-11-30 18:03:56 UTC (rev 42299)
@@ -115,7 +115,7 @@
 	return medge;
 }
 
-static MFace *dm_getFaceArray(DerivedMesh *dm)
+static MFace *dm_getTessFaceArray(DerivedMesh *dm)
 {
 	MFace *mface = CustomData_get_layer(&dm->faceData, CD_MFACE);
 
@@ -189,7 +189,7 @@
 
 static MLoop *dm_dupLoopArray(DerivedMesh *dm)
 {
-	MLoop *tmp = MEM_callocN(sizeof(*tmp) * dm->numLoopData,
+	MLoop *tmp = MEM_callocN(sizeof(*tmp) * dm->getNumLoops(dm),
 							 "dm_dupLoopArray tmp");
 
 	if(tmp) dm->copyLoopArray(dm, tmp);
@@ -199,7 +199,7 @@
 
 static MPoly *dm_dupPolyArray(DerivedMesh *dm)
 {
-	MPoly *tmp = MEM_callocN(sizeof(*tmp) * dm->numFaceData,
+	MPoly *tmp = MEM_callocN(sizeof(*tmp) * dm->getNumPolys(dm),
 							 "dm_dupPolyArray tmp");
 
 	if(tmp) dm->copyPolyArray(dm, tmp);
@@ -217,7 +217,7 @@
 	return &dm->edgeData;
 }
 
-static CustomData *dm_getFaceCData(DerivedMesh *dm)
+static CustomData *dm_getTessFaceCData(DerivedMesh *dm)
 {
 	return &dm->faceData;
 }
@@ -237,7 +237,7 @@
 	/* default function implementations */
 	dm->getVertArray = dm_getVertArray;
 	dm->getEdgeArray = dm_getEdgeArray;
-	dm->getTessFaceArray = dm_getFaceArray;
+	dm->getTessFaceArray = dm_getTessFaceArray;
 	dm->getLoopArray = dm_getLoopArray;
 	dm->getPolyArray = dm_getPolyArray;
 	dm->dupVertArray = dm_dupVertArray;
@@ -248,7 +248,7 @@
 
 	dm->getVertDataLayout = dm_getVertCData;
 	dm->getEdgeDataLayout = dm_getEdgeCData;
-	dm->getTessFaceDataLayout = dm_getFaceCData;
+	dm->getTessFaceDataLayout = dm_getTessFaceCData;
 	dm->getLoopDataLayout = dm_getLoopCData;
 	dm->getPolyDataLayout = dm_getPolyCData;
 
@@ -263,14 +263,14 @@
 }
 
 void DM_init(DerivedMesh *dm, DerivedMeshType type, int numVerts, int numEdges,
-	     int numFaces, int numLoops, int numPoly)
+	     int numTessFaces, int numLoops, int numPolys)
 {
 	dm->type = type;
 	dm->numVertData = numVerts;
 	dm->numEdgeData = numEdges;
-	dm->numFaceData = numFaces;
+	dm->numTessFaceData = numTessFaces;
 	dm->numLoopData = numLoops;
-	dm->numPolyData = numPoly;
+	dm->numPolyData = numPolys;
 
 	DM_init_funcs(dm);
 	
@@ -278,15 +278,15 @@
 }
 
 void DM_from_template(DerivedMesh *dm, DerivedMesh *source, DerivedMeshType type,
-                      int numVerts, int numEdges, int numFaces,
-		      int numLoops, int numPolys)
+                      int numVerts, int numEdges, int numTessFaces,
+                      int numLoops, int numPolys)
 {
 	CustomData_copy(&source->vertData, &dm->vertData, CD_MASK_DERIVEDMESH,
 					CD_CALLOC, numVerts);
 	CustomData_copy(&source->edgeData, &dm->edgeData, CD_MASK_DERIVEDMESH,
 					CD_CALLOC, numEdges);
 	CustomData_copy(&source->faceData, &dm->faceData, CD_MASK_DERIVEDMESH,
-					CD_CALLOC, numFaces);
+					CD_CALLOC, numTessFaces);
 	CustomData_copy(&source->loopData, &dm->loopData, CD_MASK_DERIVEDMESH,
 	                CD_CALLOC, numLoops);
 	CustomData_copy(&source->polyData, &dm->polyData, CD_MASK_DERIVEDMESH,
@@ -295,7 +295,7 @@
 	dm->type = type;
 	dm->numVertData = numVerts;
 	dm->numEdgeData = numEdges;
-	dm->numFaceData = numFaces;
+	dm->numTessFaceData = numTessFaces;
 	dm->numLoopData = numLoops;
 	dm->numPolyData = numPolys;
 
@@ -311,7 +311,7 @@
 		GPU_drawobject_free( dm );
 		CustomData_free(&dm->vertData, dm->numVertData);
 		CustomData_free(&dm->edgeData, dm->numEdgeData);
-		CustomData_free(&dm->faceData, dm->numFaceData);
+		CustomData_free(&dm->faceData, dm->numTessFaceData);
 		CustomData_free(&dm->loopData, dm->numLoopData);
 		CustomData_free(&dm->polyData, dm->numPolyData);
 
@@ -320,7 +320,7 @@
 	else {
 		CustomData_free_temporary(&dm->vertData, dm->numVertData);
 		CustomData_free_temporary(&dm->edgeData, dm->numEdgeData);
-		CustomData_free_temporary(&dm->faceData, dm->numFaceData);
+		CustomData_free_temporary(&dm->faceData, dm->numTessFaceData);
 		CustomData_free_temporary(&dm->loopData, dm->numLoopData);
 		CustomData_free_temporary(&dm->polyData, dm->numPolyData);
 
@@ -488,7 +488,7 @@
 
 void DM_add_tessface_layer(DerivedMesh *dm, int type, int alloctype, void *layer)
 {
-	CustomData_add_layer(&dm->faceData, type, alloctype, layer, dm->numFaceData);
+	CustomData_add_layer(&dm->faceData, type, alloctype, layer, dm->numTessFaceData);
 }
 
 void DM_add_loop_layer(DerivedMesh *dm, int type, int alloctype, void *layer)
@@ -1979,7 +1979,7 @@
 	MVert * mvert;		// vertices & normals
 	float (*orco)[3];
 	float (*tangent)[4];	// destination
-	int numFaces;
+	int numTessFaces;
 
 } SGLSLMeshToTangent;
 
@@ -1989,7 +1989,7 @@
 static int GetNumFaces(const SMikkTSpaceContext * pContext)
 {
 	SGLSLMeshToTangent * pMesh = (SGLSLMeshToTangent *) pContext->m_pUserData;
-	return pMesh->numFaces;
+	return pMesh->numTessFaces;
 }
 
 static int GetNumVertsOfFace(const SMikkTSpaceContext * pContext, const int face_num)
@@ -2116,7 +2116,7 @@
 		mesh2tangent.mvert = mvert;
 		mesh2tangent.orco = orco;
 		mesh2tangent.tangent = tangent;
-		mesh2tangent.numFaces = totface;
+		mesh2tangent.numTessFaces = totface;
 
 		sContext.m_pUserData = &mesh2tangent;
 		sContext.m_pInterface = &sInterface;
@@ -2242,7 +2242,7 @@
 				attribs->tface[a].glIndex = gattribs->layer[b].glindex;
 			} /*else {
 				int player;
-				CustomData *pdata = dm->getFaceDataLayout(dm);
+				CustomData *pdata = dm->getPolyDataLayout(dm);
 				
 				if(gattribs->layer[b].name[0])
 					player = CustomData_get_named_layer_index(pdata, CD_MTEXPOLY,
@@ -2362,7 +2362,7 @@
 		DEBUG_VBO( "Using legacy code. drawNavMeshColored\n" );
 		//glShadeModel(GL_SMOOTH);
 		glBegin(glmode = GL_QUADS);
-		for(a = 0; a < dm->numFaceData; a++, mface++) {
+		for(a = 0; a < dm->numTessFaceData; a++, mface++) {
 			int new_glmode = mface->v4?GL_QUADS:GL_TRIANGLES;
 			int pi = polygonIdx[a];
 			if (pi <= 0) {

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c	2011-11-30 16:29:26 UTC (rev 42298)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c	2011-11-30 18:03:56 UTC (rev 42299)
@@ -109,9 +109,14 @@
 
 static int cdDM_getNumTessFaces(DerivedMesh *dm)
 {
-	return dm->numFaceData;
+	return dm->numTessFaceData;
 }
 
+static int cdDM_getNumLoops(DerivedMesh *dm)
+{
+	return dm->numLoopData;
+}
+
 static int cdDM_getNumPolys(DerivedMesh *dm)
 {
 	return dm->numPolyData;
@@ -150,7 +155,7 @@
 static void cdDM_copyTessFaceArray(DerivedMesh *dm, MFace *face_r)
 {
 	CDDerivedMesh *cddm = (CDDerivedMesh *)dm;
-	memcpy(face_r, cddm->mface, sizeof(*face_r) * dm->numFaceData);
+	memcpy(face_r, cddm->mface, sizeof(*face_r) * dm->numTessFaceData);
 }
 
 static void cdDM_copyLoopArray(DerivedMesh *dm, MLoop *loop_r)
@@ -287,7 +292,7 @@
 	CDDerivedMesh *cddm = (CDDerivedMesh*) dm;
 	float (*face_nors)[3];
 
-	if(!cddm->pbvh || !cddm->pbvh_draw || !dm->numFaceData)
+	if(!cddm->pbvh || !cddm->pbvh_draw || !dm->numTessFaceData)
 		return;
 
 	face_nors = CustomData_get_layer(&dm->faceData, CD_NORMAL);
@@ -329,7 +334,7 @@
 	if(mf) {
 		if( GPU_buffer_legacy(dm) ) {
 			glBegin(GL_LINES);
-			for(i = 0; i < dm->numFaceData; i++, mf++, tf++) {
+			for(i = 0; i < dm->numTessFaceData; i++, mf++, tf++) {
 				if(!(mf->flag&ME_HIDE)) {
 					glVertex2fv(tf->uv[0]);
 					glVertex2fv(tf->uv[1]);
@@ -359,7 +364,7 @@
 
 			GPU_uvedge_setup(dm);
 			if( !GPU_buffer_legacy(dm) ) {
-				for(i = 0; i < dm->numFaceData; i++, mf++) {
+				for(i = 0; i < dm->numTessFaceData; i++, mf++) {
 					if(!(mf->flag&ME_HIDE)) {
 						draw = 1;
 					} 
@@ -506,7 +511,7 @@
 }
 
 	if(cddm->pbvh && cddm->pbvh_draw) {
-		if(dm->numFaceData) {
+		if(dm->numTessFaceData) {
 			float (*face_nors)[3] = CustomData_get_layer(&dm->faceData, CD_NORMAL);
 
 			/* should be per face */
@@ -524,7 +529,7 @@
 	if( GPU_buffer_legacy(dm) ) {
 		DEBUG_VBO( "Using legacy code. cdDM_drawFacesSolid\n" );
 		glBegin(glmode = GL_QUADS);
-		for(a = 0; a < dm->numFaceData; a++, mface++) {
+		for(a = 0; a < dm->numTessFaceData; a++, mface++) {
 			int new_glmode, new_matnr, new_shademodel;
 
 			new_glmode = mface->v4?GL_QUADS:GL_TRIANGLES;
@@ -617,7 +622,7 @@
 		DEBUG_VBO( "Using legacy code. cdDM_drawFacesColored\n" );
 		glShadeModel(GL_SMOOTH);
 		glBegin(glmode = GL_QUADS);
-		for(a = 0; a < dm->numFaceData; a++, mface++, cp1 += 16) {
+		for(a = 0; a < dm->numTessFaceData; a++, mface++, cp1 += 16) {
 			int new_glmode = mface->v4?GL_QUADS:GL_TRIANGLES;
 
 			if(new_glmode != glmode) {
@@ -696,7 +701,7 @@
 
 	if( GPU_buffer_legacy(dm) ) {
 		DEBUG_VBO( "Using legacy code. cdDM_drawFacesTex_common\n" );
-		for(i = 0; i < dm->numFaceData; i++, mf++) {
+		for(i = 0; i < dm->numTessFaceData; i++, mf++) {
 			MVert *mvert;
 			int flag;
 			unsigned char *cp = NULL;
@@ -892,7 +897,7 @@
 	 * color array temporarily overwritten for drawing, then reset. */
 	if( GPU_buffer_legacy(dm) || G.f & G_BACKBUFSEL) {
 		DEBUG_VBO( "Using legacy code. cdDM_drawMappedFaces\n" );
-		for(i = 0; i < dm->numFaceData; i++, mf++) {

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list