[Bf-blender-cvs] [8d9fd0427dd] master: Cleanup: Nodes: Use consistent errors for nodes built without features

Hans Goudey noreply at git.blender.org
Tue Apr 13 00:43:42 CEST 2021


Commit: 8d9fd0427dd6cf9556f2bb4415ead82c73300d32
Author: Hans Goudey
Date:   Mon Apr 12 17:43:36 2021 -0500
Branches: master
https://developer.blender.org/rB8d9fd0427dd6cf9556f2bb4415ead82c73300d32

Cleanup: Nodes: Use consistent errors for nodes built without features

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

M	source/blender/nodes/CMakeLists.txt
M	source/blender/nodes/geometry/nodes/node_geo_boolean.cc
M	source/blender/nodes/geometry/nodes/node_geo_subdivide.cc
M	source/blender/nodes/geometry/nodes/node_geo_subdivision_surface.cc

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

diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt
index 88482b71f68..f9331d8aa7f 100644
--- a/source/blender/nodes/CMakeLists.txt
+++ b/source/blender/nodes/CMakeLists.txt
@@ -392,6 +392,10 @@ if(WITH_OPENSUBDIV)
   add_definitions(-DWITH_OPENSUBDIV)
 endif()
 
+if(WITH_GMP)
+  add_definitions(-DWITH_GMP)
+endif()
+
 if(WITH_OPENVDB)
   list(APPEND INC_SYS
     ${OPENVDB_INCLUDE_DIRS}
diff --git a/source/blender/nodes/geometry/nodes/node_geo_boolean.cc b/source/blender/nodes/geometry/nodes/node_geo_boolean.cc
index 34fff596902..d8029ea1eeb 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_boolean.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_boolean.cc
@@ -85,11 +85,10 @@ static void geo_node_boolean_exec(GeoNodeExecParams params)
   const bool use_self = params.get_input<bool>("Self Intersection");
   const bool hole_tolerant = params.get_input<bool>("Hole Tolerant");
 
-  if (operation < 0 || operation > 2) {
-    BLI_assert(false);
-    params.set_output("Geometry", GeometrySet());
-    return;
-  }
+#ifndef WITH_GMP
+  params.error_message_add(NodeWarningType::Error,
+                           TIP_("Disabled, Blender was compiled without GMP"));
+#endif
 
   Vector<const Mesh *> meshes;
   Vector<const float4x4 *> transforms;
diff --git a/source/blender/nodes/geometry/nodes/node_geo_subdivide.cc b/source/blender/nodes/geometry/nodes/node_geo_subdivide.cc
index d233fd03254..4b7acf2edc0 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_subdivide.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_subdivide.cc
@@ -49,7 +49,7 @@ static void geo_node_subdivide_exec(GeoNodeExecParams params)
 
 #ifndef WITH_OPENSUBDIV
   params.error_message_add(NodeWarningType::Error,
-                           TIP_("Disabled, Blender was built without OpenSubdiv"));
+                           TIP_("Disabled, Blender was compiled without OpenSubdiv"));
   params.set_output("Geometry", std::move(geometry_set));
   return;
 #endif
@@ -98,6 +98,7 @@ static void geo_node_subdivide_exec(GeoNodeExecParams params)
 
   params.set_output("Geometry", std::move(geometry_set));
 }
+
 }  // namespace blender::nodes
 
 void register_node_type_geo_subdivide()
diff --git a/source/blender/nodes/geometry/nodes/node_geo_subdivision_surface.cc b/source/blender/nodes/geometry/nodes/node_geo_subdivision_surface.cc
index ded39b7d3de..20ffcdb516d 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_subdivision_surface.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_subdivision_surface.cc
@@ -37,17 +37,6 @@ static bNodeSocketTemplate geo_node_subdivision_surface_out[] = {
     {-1, ""},
 };
 
-static void geo_node_subdivision_surface_layout(uiLayout *layout,
-                                                bContext *UNUSED(C),
-                                                PointerRNA *UNUSED(ptr))
-{
-#ifndef WITH_OPENSUBDIV
-  uiItemL(layout, IFACE_("Disabled, built without OpenSubdiv"), ICON_ERROR);
-#else
-  UNUSED_VARS(layout);
-#endif
-}
-
 namespace blender::nodes {
 static void geo_node_subdivision_surface_exec(GeoNodeExecParams params)
 {
@@ -61,9 +50,8 @@ static void geo_node_subdivision_surface_exec(GeoNodeExecParams params)
   }
 
 #ifndef WITH_OPENSUBDIV
-  /* Return input geometry if Blender is built without OpenSubdiv. */
-  params.set_output("Geometry", std::move(geometry_set));
-  return;
+  params.error_message_add(NodeWarningType::Error,
+                           TIP_("Disabled, Blender was compiled without OpenSubdiv"));
 #else
   const int subdiv_level = clamp_i(params.extract_input<int>("Level"), 0, 30);
 
@@ -113,9 +101,11 @@ static void geo_node_subdivision_surface_exec(GeoNodeExecParams params)
   // BKE_subdiv_stats_print(&subdiv->stats);
   BKE_subdiv_free(subdiv);
 
-  params.set_output("Geometry", std::move(geometry_set));
 #endif
+
+  params.set_output("Geometry", std::move(geometry_set));
 }
+
 }  // namespace blender::nodes
 
 void register_node_type_geo_subdivision_surface()
@@ -127,6 +117,5 @@ void register_node_type_geo_subdivision_surface()
   node_type_socket_templates(
       &ntype, geo_node_subdivision_surface_in, geo_node_subdivision_surface_out);
   ntype.geometry_node_execute = blender::nodes::geo_node_subdivision_surface_exec;
-  ntype.draw_buttons = geo_node_subdivision_surface_layout;
   nodeRegisterType(&ntype);
 }



More information about the Bf-blender-cvs mailing list