diff --git a/scripts/startup/bl_ui/node_add_menu_geometry.py b/scripts/startup/bl_ui/node_add_menu_geometry.py index 246d13b8bd2..711e9dcb78b 100644 --- a/scripts/startup/bl_ui/node_add_menu_geometry.py +++ b/scripts/startup/bl_ui/node_add_menu_geometry.py @@ -658,9 +658,8 @@ class NODE_MT_category_GEO_UTILITIES(Menu): layout.menu("NODE_MT_category_GEO_TEXT") layout.menu("NODE_MT_category_GEO_VECTOR") layout.separator() - if context.preferences.experimental.use_bundle_and_closure_nodes: - layout.menu("NODE_MT_category_utilities_bundle") - layout.menu("NODE_MT_category_utilities_closure") + layout.menu("NODE_MT_category_utilities_bundle") + layout.menu("NODE_MT_category_utilities_closure") layout.menu("NODE_MT_category_GEO_UTILITIES_FIELD") if context.preferences.experimental.use_geometry_nodes_lists: layout.menu("NODE_MT_category_utilities_list") diff --git a/scripts/startup/bl_ui/space_userpref.py b/scripts/startup/bl_ui/space_userpref.py index 8f8181cff7a..986db206008 100644 --- a/scripts/startup/bl_ui/space_userpref.py +++ b/scripts/startup/bl_ui/space_userpref.py @@ -2868,7 +2868,6 @@ class USERPREF_PT_experimental_new_features(ExperimentalPanel, Panel): ("blender/blender/projects/10", "Pipeline, Assets & IO Project Page")), ({"property": "use_new_volume_nodes"}, ("blender/blender/issues/103248", "#103248")), ({"property": "use_shader_node_previews"}, ("blender/blender/issues/110353", "#110353")), - ({"property": "use_bundle_and_closure_nodes"}, ("blender/blender/issues/134029", "#134029")), ({"property": "use_geometry_nodes_lists"}, ("blender/blender/issues/140918", "#140918")), ), ) diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 92f02f93dbf..a7b58ea5bf2 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -225,9 +225,8 @@ typedef struct UserDef_Experimental { char use_sculpt_texture_paint; char use_new_volume_nodes; char use_shader_node_previews; - char use_bundle_and_closure_nodes; char use_geometry_nodes_lists; - char _pad[5]; + char _pad[6]; } UserDef_Experimental; #define USER_EXPERIMENTAL_TEST(userdef, member) \ diff --git a/source/blender/makesrna/intern/rna_node_tree_interface.cc b/source/blender/makesrna/intern/rna_node_tree_interface.cc index 2b235521c4f..8b4a97f93f9 100644 --- a/source/blender/makesrna/intern/rna_node_tree_interface.cc +++ b/source/blender/makesrna/intern/rna_node_tree_interface.cc @@ -431,12 +431,6 @@ static bool is_socket_type_supported(blender::bke::bNodeTreeType *ntreetype, } } - if (!U.experimental.use_bundle_and_closure_nodes) { - if (ELEM(socket_type->type, SOCK_BUNDLE, SOCK_CLOSURE)) { - return false; - } - } - return true; } diff --git a/source/blender/makesrna/intern/rna_userdef.cc b/source/blender/makesrna/intern/rna_userdef.cc index 87b2c76cfeb..8ae5c0da322 100644 --- a/source/blender/makesrna/intern/rna_userdef.cc +++ b/source/blender/makesrna/intern/rna_userdef.cc @@ -7606,10 +7606,6 @@ static void rna_def_userdef_experimental(BlenderRNA *brna) prop, "Shader Node Previews", "Enables previews in the shader node editor"); RNA_def_property_update(prop, 0, "rna_userdef_ui_update"); - prop = RNA_def_property(srna, "use_bundle_and_closure_nodes", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_ui_text( - prop, "Bundle and Closure Nodes", "Enables bundle and closure nodes in Geometry Nodes"); - prop = RNA_def_property(srna, "use_geometry_nodes_lists", PROP_BOOLEAN, PROP_NONE); RNA_def_property_ui_text(prop, "Geometry Nodes Lists", "Enable new list types and nodes"); diff --git a/source/blender/nodes/geometry/nodes/node_geo_combine_bundle.cc b/source/blender/nodes/geometry/nodes/node_geo_combine_bundle.cc index 9705cf29fb0..905c32ea522 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_combine_bundle.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_combine_bundle.cc @@ -105,11 +105,6 @@ static void node_operators() static void node_geo_exec(GeoNodeExecParams params) { - if (!U.experimental.use_bundle_and_closure_nodes) { - params.set_default_remaining_outputs(); - return; - } - const bNode &node = params.node(); const NodeCombineBundle &storage = node_storage(node); diff --git a/source/blender/nodes/geometry/nodes/node_geo_index_switch.cc b/source/blender/nodes/geometry/nodes/node_geo_index_switch.cc index c3de504f46d..0843e788a8a 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_index_switch.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_index_switch.cc @@ -334,11 +334,6 @@ static void node_rna(StructRNA *srna) *r_free = true; return enum_items_filter(rna_enum_node_socket_data_type_items, [](const EnumPropertyItem &item) -> bool { - if (!U.experimental.use_bundle_and_closure_nodes) { - if (ELEM(item.value, SOCK_BUNDLE, SOCK_CLOSURE)) { - return false; - } - } return ELEM(item.value, SOCK_FLOAT, SOCK_INT, diff --git a/source/blender/nodes/geometry/nodes/node_geo_separate_bundle.cc b/source/blender/nodes/geometry/nodes/node_geo_separate_bundle.cc index 4b6da92c26e..52c76d9b3ea 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_separate_bundle.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_separate_bundle.cc @@ -109,11 +109,6 @@ static void node_operators() static void node_geo_exec(GeoNodeExecParams params) { - if (!U.experimental.use_bundle_and_closure_nodes) { - params.set_default_remaining_outputs(); - return; - } - nodes::BundlePtr bundle = params.extract_input("Bundle"); if (!bundle) { params.set_default_remaining_outputs(); diff --git a/source/blender/nodes/geometry/nodes/node_geo_simulation.cc b/source/blender/nodes/geometry/nodes/node_geo_simulation.cc index 3de8cb657ab..1ab2a47ead5 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_simulation.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_simulation.cc @@ -592,9 +592,7 @@ class LazyFunctionForSimulationOutputNode final : public LazyFunction { if (geo_eval_log::GeoTreeLogger *tree_logger = local_user_data.try_get_tree_logger( user_data)) { - const StringRefNull message = U.experimental.use_bundle_and_closure_nodes ? - TIP_("Simulation must not be in a loop or closure") : - TIP_("Simulation must not be in a loop"); + const StringRefNull message = TIP_("Simulation must not be in a loop or closure"); tree_logger->node_warnings.append(*tree_logger->allocator, {node_.identifier, {NodeWarningType::Error, message}}); } diff --git a/source/blender/nodes/geometry/nodes/node_geo_switch.cc b/source/blender/nodes/geometry/nodes/node_geo_switch.cc index e89a1af1b89..6cc83143940 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_switch.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_switch.cc @@ -242,11 +242,6 @@ static void node_rna(StructRNA *srna) *r_free = true; return enum_items_filter(rna_enum_node_socket_data_type_items, [](const EnumPropertyItem &item) -> bool { - if (!U.experimental.use_bundle_and_closure_nodes) { - if (ELEM(item.value, SOCK_BUNDLE, SOCK_CLOSURE)) { - return false; - } - } return ELEM(item.value, SOCK_FLOAT, SOCK_INT, diff --git a/source/blender/nodes/intern/geometry_nodes_closure_zone.cc b/source/blender/nodes/intern/geometry_nodes_closure_zone.cc index 6eb5b9aeb04..c7334854d41 100644 --- a/source/blender/nodes/intern/geometry_nodes_closure_zone.cc +++ b/source/blender/nodes/intern/geometry_nodes_closure_zone.cc @@ -141,11 +141,6 @@ class LazyFunctionForClosureZone : public LazyFunction { for (const int i : zone_.border_links.index_range()) { params.set_output(zone_info_.indices.outputs.border_link_usages[i], true); } - if (!U.experimental.use_bundle_and_closure_nodes) { - params.set_output(zone_info_.indices.outputs.main[0], - bke::SocketValueVariant::From(ClosurePtr())); - return; - } const auto &storage = *static_cast(output_bnode_.storage); diff --git a/tests/python/geo_node_test.py b/tests/python/geo_node_test.py index e9e06d26ed7..bec1be0ce96 100644 --- a/tests/python/geo_node_test.py +++ b/tests/python/geo_node_test.py @@ -5,18 +5,10 @@ import os import sys -import bpy sys.path.append(os.path.dirname(os.path.realpath(__file__))) from modules.mesh_test import BlendFileTest -if "closure" in bpy.data.filepath: - if bpy.app.version_cycle == "alpha": - bpy.context.preferences.experimental.use_bundle_and_closure_nodes = True - else: - print("Skipped because bundles and closures are still experimental.") - sys.exit(0) - geo_node_test = BlendFileTest("test_object", "expected_object", threshold=1e-4) result = geo_node_test.run_test()