[Bf-blender-cvs] [0125d5d] opensubdiv-modifier: OpenSubdiv: Report detailed error messages on mesh validation

Sergey Sharybin noreply at git.blender.org
Sat Jul 11 20:02:09 CEST 2015


Commit: 0125d5d134c2eab1040e60e533441f5c3e314085
Author: Sergey Sharybin
Date:   Fri Jul 10 12:14:09 2015 +0200
Branches: opensubdiv-modifier
https://developer.blender.org/rB0125d5d134c2eab1040e60e533441f5c3e314085

OpenSubdiv: Report detailed error messages on mesh validation

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

M	intern/opensubdiv/opensubdiv_capi.cc
M	intern/opensubdiv/opensubdiv_converter.h
M	intern/opensubdiv/opensubdiv_evaluator_capi.cc
M	source/blender/blenkernel/intern/CCGSubSurf.c

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

diff --git a/intern/opensubdiv/opensubdiv_capi.cc b/intern/opensubdiv/opensubdiv_capi.cc
index bfefd27..fd90683 100644
--- a/intern/opensubdiv/opensubdiv_capi.cc
+++ b/intern/opensubdiv/opensubdiv_capi.cc
@@ -33,7 +33,6 @@
 #include <GL/glew.h>
 
 #include <opensubdiv/osd/glMesh.h>
-#include <opensubdiv/far/topologyRefinerFactory.h>
 
 /* CPU Backend */
 #include <opensubdiv/osd/cpuGLVertexBuffer.h>
diff --git a/intern/opensubdiv/opensubdiv_converter.h b/intern/opensubdiv/opensubdiv_converter.h
index 8b76b57..487459c 100644
--- a/intern/opensubdiv/opensubdiv_converter.h
+++ b/intern/opensubdiv/opensubdiv_converter.h
@@ -29,6 +29,8 @@
 #include <opensubdiv/far/topologyRefinerFactory.h>
 #include <opensubdiv/far/primvarRefiner.h>
 
+#include <cstdio>
+
 extern "C" {
 struct DerivedMesh;
 }
@@ -254,10 +256,10 @@ inline bool TopologyRefinerFactory<OsdBlenderConverter>::assignComponentTopology
 	for (int vert = 0; vert < num_verts; ++vert) {
 		/* Vert-Faces */
 		IndexArray dst_vert_faces = getBaseVertexFaces(refiner, vert);
-		//conv.get_vert_faces(vert, &dst_vert_faces[0]);
+		// conv.get_vert_faces(vert, &dst_vert_faces[0]);
 		/* Vert-Edges */
 		IndexArray dst_vert_edges = getBaseVertexEdges(refiner, vert);
-		//conv.get_vert_edges(vert, &dst_vert_edges[0]);
+		// conv.get_vert_edges(vert, &dst_vert_edges[0]);
 		orderVertexFacesAndEdges(conv, vert, &dst_vert_faces[0], &dst_vert_edges[0]);
 	}
 	populateBaseLocalIndices(refiner);
@@ -277,6 +279,15 @@ inline bool TopologyRefinerFactory<OsdBlenderConverter>::assignComponentTags(
 	return true;
 }
 
+template <>
+inline void TopologyRefinerFactory<OsdBlenderConverter>::reportInvalidTopology(
+        TopologyError /*errCode*/,
+        const char *msg,
+        const OsdBlenderConverter& /*mesh*/)
+{
+	printf("OpenSubdiv Error: %s\n", msg);
+}
+
 }  /* namespace Far */
 }  /* namespace OPENSUBDIV_VERSION */
 }  /* namespace OpenSubdiv */
diff --git a/intern/opensubdiv/opensubdiv_evaluator_capi.cc b/intern/opensubdiv/opensubdiv_evaluator_capi.cc
index 4c3af8c..0447910 100644
--- a/intern/opensubdiv/opensubdiv_evaluator_capi.cc
+++ b/intern/opensubdiv/opensubdiv_evaluator_capi.cc
@@ -28,7 +28,6 @@
 #include <cstdio>
 #include <vector>
 
-#include <opensubdiv/far/topologyRefinerFactory.h>
 #include <opensubdiv/far/patchMap.h>
 #include <opensubdiv/far/patchTable.h>
 #include <opensubdiv/far/patchTableFactory.h>
@@ -51,7 +50,6 @@ using OpenSubdiv::Far::PatchTableFactory;
 using OpenSubdiv::Far::StencilTable;
 using OpenSubdiv::Far::StencilTableFactory;
 using OpenSubdiv::Far::TopologyRefiner;
-using OpenSubdiv::Far::TopologyRefinerFactory;
 
 namespace {
 
diff --git a/source/blender/blenkernel/intern/CCGSubSurf.c b/source/blender/blenkernel/intern/CCGSubSurf.c
index 32a90bd..f55b7bf 100644
--- a/source/blender/blenkernel/intern/CCGSubSurf.c
+++ b/source/blender/blenkernel/intern/CCGSubSurf.c
@@ -2692,7 +2692,7 @@ static bool opensubdiv_ensureEvaluator(CCGSubSurf *ss)
 	} else {
 		OSD_LOG("Re-using old evaluator\n");
 	}
-	return true;
+	return ss->osd_evaluator != NULL;
 }
 
 static void opensubdiv_updateCoarsePositions(CCGSubSurf *ss)




More information about the Bf-blender-cvs mailing list