Compositor node preview:
authorJeroen Bakker <j.bakker@atmind.nl>
Sun, 8 Dec 2013 20:53:35 +0000 (21:53 +0100)
committerJeroen Bakker <j.bakker@atmind.nl>
Mon, 9 Dec 2013 19:22:16 +0000 (20:22 +0100)
moved the hide preview logic to a method on bNodeTreeType. This way the node.c keeps clean, but logic could still be shared.
Implementing this per node, can lead to future errors.

source/blender/blenkernel/BKE_blender.h
source/blender/blenkernel/BKE_node.h
source/blender/blenkernel/intern/node.c
source/blender/nodes/composite/node_composite_tree.c

index aa6932a42a0b6cdcec51d6c192b3eef554004352..d1e950970090f1a066bc69a24a173286d4f84ea1 100644 (file)
@@ -42,7 +42,7 @@ extern "C" {
  * and keep comment above the defines.
  * Use STRINGIFY() rather than defining with quotes */
 #define BLENDER_VERSION         269
-#define BLENDER_SUBVERSION      5
+#define BLENDER_SUBVERSION      6
 /* 262 was the last editmesh release but it has compatibility code for bmesh data */
 #define BLENDER_MINVERSION      262
 #define BLENDER_MINSUBVERSION   0
index eda905a263fbd2939e961e4b5a8d4b64b1656364..28a4a30fa91f1481e63ce967a407ef2fa9e0a7c8 100644 (file)
@@ -306,6 +306,8 @@ typedef struct bNodeTreeType {
        void (*update)(struct bNodeTree *ntree);
        
        int (*validate_link)(struct bNodeTree *ntree, struct bNodeLink *link);
+
+       void (*node_add_init)(struct bNodeTree *ntree, struct bNode *bnode);
        
        /* RNA integration */
        ExtensionRNA ext;
index 147e790932294d9491e7668d4dc0c21ec35c5f89..85354e4e0d764802133b27a0120604fa7f0f6739 100644 (file)
@@ -134,16 +134,12 @@ static void node_init(const struct bContext *C, bNodeTree *ntree, bNode *node)
        
        node_add_sockets_from_type(ntree, node, ntype);
 
-       /* Composite node will only show previews for input classes 
-        * by default, other will be hidden 
-        * but can be made visible with the show_preview option */
-       if (ntree->typeinfo->type == NTREE_COMPOSIT && ntype->nclass != NODE_CLASS_INPUT) {
-               node->flag &= ~NODE_PREVIEW;
-       }       
-       
        if (ntype->initfunc != NULL)
                ntype->initfunc(ntree, node);
-       
+
+       if (ntree->typeinfo->node_add_init != NULL)
+               ntree->typeinfo->node_add_init(ntree, node);
+
        /* extra init callback */
        if (ntype->initfunc_api) {
                PointerRNA ptr;
index 31ae46468c3d4f9bbd3a4fc0f78c1ea3625fa39c..7da3a35dba0bbaf12d6ee0f7a7d1f59f1bf909a6 100644 (file)
@@ -218,6 +218,15 @@ static void update(bNodeTree *ntree)
        }
 }
 
+static void composite_node_add_init(bNodeTree *UNUSED(bnodetree), bNode *bnode) {
+       /* Composite node will only show previews for input classes 
+        * by default, other will be hidden 
+        * but can be made visible with the show_preview option */
+       if (bnode->typeinfo->nclass != NODE_CLASS_INPUT) {
+               bnode->flag &= ~NODE_PREVIEW;
+       }       
+}
+
 bNodeTreeType *ntreeType_Composite;
 
 void register_node_tree_type_cmp(void)
@@ -238,6 +247,7 @@ void register_node_tree_type_cmp(void)
        tt->local_merge = local_merge;
        tt->update = update;
        tt->get_from_context = composite_get_from_context;
+       tt->node_add_init = composite_node_add_init;
        
        tt->ext.srna = &RNA_CompositorNodeTree;