[Bf-blender-cvs] [a55163c880c] master: Cleanup: Reduce indentation when setting node active
Hans Goudey
noreply at git.blender.org
Tue Dec 13 23:45:51 CET 2022
Commit: a55163c880c4c5720a1db8021c42339a05474e70
Author: Hans Goudey
Date: Tue Dec 13 16:01:47 2022 -0600
Branches: master
https://developer.blender.org/rBa55163c880c4c5720a1db8021c42339a05474e70
Cleanup: Reduce indentation when setting node active
===================================================================
M source/blender/editors/space_node/node_edit.cc
===================================================================
diff --git a/source/blender/editors/space_node/node_edit.cc b/source/blender/editors/space_node/node_edit.cc
index b7b82fbd661..1bf5b938ee3 100644
--- a/source/blender/editors/space_node/node_edit.cc
+++ b/source/blender/editors/space_node/node_edit.cc
@@ -673,136 +673,137 @@ void ED_node_set_active(
}
nodeSetActive(ntree, node);
+ if (node->type == NODE_GROUP) {
+ return;
+ }
- if (node->type != NODE_GROUP) {
- const bool was_output = (node->flag & NODE_DO_OUTPUT) != 0;
- bool do_update = false;
+ const bool was_output = (node->flag & NODE_DO_OUTPUT) != 0;
+ bool do_update = false;
+
+ /* generic node group output: set node as active output */
+ if (node->type == NODE_GROUP_OUTPUT) {
+ for (bNode *node_iter : ntree->all_nodes()) {
+ if (node_iter->type == NODE_GROUP_OUTPUT) {
+ node_iter->flag &= ~NODE_DO_OUTPUT;
+ }
+ }
+
+ node->flag |= NODE_DO_OUTPUT;
+ if (!was_output) {
+ do_update = true;
+ BKE_ntree_update_tag_active_output_changed(ntree);
+ }
+ }
- /* generic node group output: set node as active output */
- if (node->type == NODE_GROUP_OUTPUT) {
+ /* tree specific activate calls */
+ if (ntree->type == NTREE_SHADER) {
+ if (ELEM(node->type,
+ SH_NODE_OUTPUT_MATERIAL,
+ SH_NODE_OUTPUT_WORLD,
+ SH_NODE_OUTPUT_LIGHT,
+ SH_NODE_OUTPUT_LINESTYLE)) {
for (bNode *node_iter : ntree->all_nodes()) {
- if (node_iter->type == NODE_GROUP_OUTPUT) {
+ if (node_iter->type == node->type) {
node_iter->flag &= ~NODE_DO_OUTPUT;
}
}
node->flag |= NODE_DO_OUTPUT;
- if (!was_output) {
- do_update = true;
- BKE_ntree_update_tag_active_output_changed(ntree);
- }
+ BKE_ntree_update_tag_active_output_changed(ntree);
}
- /* tree specific activate calls */
- if (ntree->type == NTREE_SHADER) {
- if (ELEM(node->type,
- SH_NODE_OUTPUT_MATERIAL,
- SH_NODE_OUTPUT_WORLD,
- SH_NODE_OUTPUT_LIGHT,
- SH_NODE_OUTPUT_LINESTYLE)) {
- for (bNode *node_iter : ntree->all_nodes()) {
- if (node_iter->type == node->type) {
- node_iter->flag &= ~NODE_DO_OUTPUT;
- }
- }
+ ED_node_tree_propagate_change(nullptr, bmain, ntree);
- node->flag |= NODE_DO_OUTPUT;
- BKE_ntree_update_tag_active_output_changed(ntree);
- }
+ if ((node->flag & NODE_ACTIVE_TEXTURE) && !was_active_texture) {
+ /* If active texture changed, free glsl materials. */
+ LISTBASE_FOREACH (Material *, ma, &bmain->materials) {
+ if (ma->nodetree && ma->use_nodes && ntreeHasTree(ma->nodetree, ntree)) {
+ GPU_material_free(&ma->gpumaterial);
- ED_node_tree_propagate_change(nullptr, bmain, ntree);
-
- if ((node->flag & NODE_ACTIVE_TEXTURE) && !was_active_texture) {
- /* If active texture changed, free glsl materials. */
- LISTBASE_FOREACH (Material *, ma, &bmain->materials) {
- if (ma->nodetree && ma->use_nodes && ntreeHasTree(ma->nodetree, ntree)) {
- GPU_material_free(&ma->gpumaterial);
-
- /* Sync to active texpaint slot, otherwise we can end up painting on a different slot
- * than we are looking at. */
- if (ma->texpaintslot) {
- if (node->id != nullptr && GS(node->id->name) == ID_IM) {
- Image *image = (Image *)node->id;
- for (int i = 0; i < ma->tot_slots; i++) {
- if (ma->texpaintslot[i].ima == image) {
- ma->paint_active_slot = i;
- }
+ /* Sync to active texpaint slot, otherwise we can end up painting on a different slot
+ * than we are looking at. */
+ if (ma->texpaintslot) {
+ if (node->id != nullptr && GS(node->id->name) == ID_IM) {
+ Image *image = (Image *)node->id;
+ for (int i = 0; i < ma->tot_slots; i++) {
+ if (ma->texpaintslot[i].ima == image) {
+ ma->paint_active_slot = i;
}
}
}
}
}
+ }
- LISTBASE_FOREACH (World *, wo, &bmain->worlds) {
- if (wo->nodetree && wo->use_nodes && ntreeHasTree(wo->nodetree, ntree)) {
- GPU_material_free(&wo->gpumaterial);
- }
+ LISTBASE_FOREACH (World *, wo, &bmain->worlds) {
+ if (wo->nodetree && wo->use_nodes && ntreeHasTree(wo->nodetree, ntree)) {
+ GPU_material_free(&wo->gpumaterial);
}
+ }
- /* Sync to Image Editor under the following conditions:
- * - current image is not pinned
- * - current image is not a Render Result or ViewerNode (want to keep looking at these) */
- if (node->id != nullptr && GS(node->id->name) == ID_IM) {
- Image *image = (Image *)node->id;
- ED_space_image_sync(bmain, image, true);
- }
+ /* Sync to Image Editor under the following conditions:
+ * - current image is not pinned
+ * - current image is not a Render Result or ViewerNode (want to keep looking at these) */
+ if (node->id != nullptr && GS(node->id->name) == ID_IM) {
+ Image *image = (Image *)node->id;
+ ED_space_image_sync(bmain, image, true);
+ }
- if (r_active_texture_changed) {
- *r_active_texture_changed = true;
+ if (r_active_texture_changed) {
+ *r_active_texture_changed = true;
+ }
+ ED_node_tree_propagate_change(nullptr, bmain, ntree);
+ WM_main_add_notifier(NC_IMAGE, nullptr);
+ }
+
+ WM_main_add_notifier(NC_MATERIAL | ND_NODES, node->id);
+ }
+ else if (ntree->type == NTREE_COMPOSIT) {
+ /* make active viewer, currently only 1 supported... */
+ if (ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) {
+ for (bNode *node_iter : ntree->all_nodes()) {
+ if (ELEM(node_iter->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) {
+ node_iter->flag &= ~NODE_DO_OUTPUT;
}
+ }
+
+ node->flag |= NODE_DO_OUTPUT;
+ if (was_output == 0) {
+ BKE_ntree_update_tag_active_output_changed(ntree);
ED_node_tree_propagate_change(nullptr, bmain, ntree);
- WM_main_add_notifier(NC_IMAGE, nullptr);
}
- WM_main_add_notifier(NC_MATERIAL | ND_NODES, node->id);
+ /* Adding a node doesn't link this yet. */
+ node->id = (ID *)BKE_image_ensure_viewer(bmain, IMA_TYPE_COMPOSITE, "Viewer Node");
}
- else if (ntree->type == NTREE_COMPOSIT) {
- /* make active viewer, currently only 1 supported... */
- if (ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) {
+ else if (node->type == CMP_NODE_COMPOSITE) {
+ if (was_output == 0) {
for (bNode *node_iter : ntree->all_nodes()) {
- if (ELEM(node_iter->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) {
+ if (node_iter->type == CMP_NODE_COMPOSITE) {
node_iter->flag &= ~NODE_DO_OUTPUT;
}
}
node->flag |= NODE_DO_OUTPUT;
- if (was_output == 0) {
- BKE_ntree_update_tag_active_output_changed(ntree);
- ED_node_tree_propagate_change(nullptr, bmain, ntree);
- }
-
- /* Adding a node doesn't link this yet. */
- node->id = (ID *)BKE_image_ensure_viewer(bmain, IMA_TYPE_COMPOSITE, "Viewer Node");
- }
- else if (node->type == CMP_NODE_COMPOSITE) {
- if (was_output == 0) {
- for (bNode *node_iter : ntree->all_nodes()) {
- if (node_iter->type == CMP_NODE_COMPOSITE) {
- node_iter->flag &= ~NODE_DO_OUTPUT;
- }
- }
-
- node->flag |= NODE_DO_OUTPUT;
- BKE_ntree_update_tag_active_output_changed(ntree);
- ED_node_tree_propagate_change(nullptr, bmain, ntree);
- }
- }
- else if (do_update) {
+ BKE_ntree_update_tag_active_output_changed(ntree);
ED_node_tree_propagate_change(nullptr, bmain, ntree);
}
}
- else if (ntree->type == NTREE_GEOMETRY) {
- if (node->type == GEO_NODE_VIEWER) {
- if ((node->flag & NODE_DO_OUTPUT) == 0) {
- for (bNode *node_iter : ntree->all_nodes()) {
- if (node_iter->type == GEO_NODE_VIEWER) {
- node_iter->flag &= ~NODE_DO_OUTPUT;
- }
+ else if (do_update) {
+ ED_node_tree_propagate_change(nullptr, bmain, ntree);
+ }
+ }
+ else if (ntree->type == NTREE_GEOMETRY) {
+ if (node->type == GEO_NODE_VIEWER) {
+ if ((node->flag & NODE_DO_OUTPUT) == 0) {
+ for (bNode *node_iter : ntree->all_nodes()) {
+ if (node_iter->type == GEO_NODE_VIEWER) {
+ node_iter->flag &= ~NODE_DO_OUTPUT;
}
- node->flag |= NODE_DO_OUTPUT;
}
- blender::ed::viewer_path::activate_geometry_node(*bmain, *snode, *node);
+ node->flag |= NODE_DO_OUTPUT;
}
+ blender::ed::viewer_path::activate_geometry_node(*bmain, *snode, *node);
}
}
}
More information about the Bf-blender-cvs
mailing list