[Bf-blender-cvs] [93ca780] multiview: Move 'Update Views' to the _ex panel, and fix crash on update routine
Dalai Felinto
noreply at git.blender.org
Tue Mar 17 17:07:35 CET 2015
Commit: 93ca780e4dcfc5cbd5483040e3461d0101228964
Author: Dalai Felinto
Date: Tue Mar 17 16:56:08 2015 +0100
Branches: multiview
https://developer.blender.org/rB93ca780e4dcfc5cbd5483040e3461d0101228964
Move 'Update Views' to the _ex panel, and fix crash on update routine
===================================================================
M source/blender/editors/space_node/drawnode.c
M source/blender/nodes/composite/nodes/node_composite_switchview.c
===================================================================
diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c
index 46b792f..d08a8ba 100644
--- a/source/blender/editors/space_node/drawnode.c
+++ b/source/blender/editors/space_node/drawnode.c
@@ -2122,7 +2122,7 @@ static void node_composit_buts_switch(uiLayout *layout, bContext *UNUSED(C), Poi
uiItemR(layout, ptr, "check", 0, NULL, ICON_NONE);
}
-static void node_composit_buts_switch_view(uiLayout *layout, bContext *UNUSED(C), PointerRNA *UNUSED(ptr))
+static void node_composit_buts_switch_view_ex(uiLayout *layout, bContext *UNUSED(C), PointerRNA *UNUSED(ptr))
{
PointerRNA op_ptr;
wmOperatorType *ot = WM_operatortype_find("NODE_OT_switch_view_update", 1);
@@ -2632,7 +2632,7 @@ static void node_composit_set_butfunc(bNodeType *ntype)
ntype->draw_buttons = node_composit_buts_switch;
break;
case CMP_NODE_SWITCH_VIEW:
- ntype->draw_buttons = node_composit_buts_switch_view;
+ ntype->draw_buttons_ex = node_composit_buts_switch_view_ex;
break;
case CMP_NODE_MASK_BOX:
ntype->draw_buttons = node_composit_buts_boxmask;
diff --git a/source/blender/nodes/composite/nodes/node_composite_switchview.c b/source/blender/nodes/composite/nodes/node_composite_switchview.c
index 3896dac..d805cf4 100644
--- a/source/blender/nodes/composite/nodes/node_composite_switchview.c
+++ b/source/blender/nodes/composite/nodes/node_composite_switchview.c
@@ -74,15 +74,23 @@ static void cmp_node_switch_view_update(bNodeTree *ntree, bNode *node)
}
/* remove the views that were removed */
- for (sock = node->inputs.first; sock; sock = sock->next) {
+ sock = node->inputs.last;
+ while (sock) {
srv = BLI_findstring(&scene->r.views, sock->name, offsetof(SceneRenderView, name));
- if (srv == NULL)
- nodeRemoveSocket(ntree, node, sock);
- else if (srv->viewflag & SCE_VIEW_DISABLE)
- sock->flag |= SOCK_HIDDEN;
- else
- sock->flag &= ~SOCK_HIDDEN;
+ if (srv == NULL) {
+ bNodeSocket *sock_del = sock;
+ sock = sock->prev;
+ nodeRemoveSocket(ntree, node, sock_del);
+ }
+ else {
+ if (srv->viewflag & SCE_VIEW_DISABLE)
+ sock->flag |= SOCK_HIDDEN;
+ else
+ sock->flag &= ~SOCK_HIDDEN;
+
+ sock = sock->prev;
+ }
}
/* add the new views */
More information about the Bf-blender-cvs
mailing list