[Bf-blender-cvs] [da852457040] master: Compositor: Pre-fill active scene movie clip in more nodes

Sergey Sharybin noreply at git.blender.org
Wed Jul 6 12:50:46 CEST 2022


Commit: da852457040827f734287d7db98208e998cb3af6
Author: Sergey Sharybin
Date:   Tue Jul 5 17:35:12 2022 +0200
Branches: master
https://developer.blender.org/rBda852457040827f734287d7db98208e998cb3af6

Compositor: Pre-fill active scene movie clip in more nodes

Pre-fills movie clip from the scene to the following nodes:
- Keying Screen
- Plane Track Deform
- Track Position

The rest of tracking related nodes were already doing so.

Differential Revision: https://developer.blender.org/D15377

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

M	source/blender/nodes/composite/nodes/node_composite_keyingscreen.cc
M	source/blender/nodes/composite/nodes/node_composite_planetrackdeform.cc
M	source/blender/nodes/composite/nodes/node_composite_trackpos.cc

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

diff --git a/source/blender/nodes/composite/nodes/node_composite_keyingscreen.cc b/source/blender/nodes/composite/nodes/node_composite_keyingscreen.cc
index c3ed5cd7aa8..e4e37f630a2 100644
--- a/source/blender/nodes/composite/nodes/node_composite_keyingscreen.cc
+++ b/source/blender/nodes/composite/nodes/node_composite_keyingscreen.cc
@@ -10,6 +10,9 @@
 #include "BLI_math_base.h"
 #include "BLI_math_color.h"
 
+#include "BKE_context.h"
+#include "BKE_lib_id.h"
+
 #include "RNA_access.h"
 #include "RNA_prototypes.h"
 
@@ -27,10 +30,16 @@ static void cmp_node_keyingscreen_declare(NodeDeclarationBuilder &b)
   b.add_output<decl::Color>(N_("Screen"));
 }
 
-static void node_composit_init_keyingscreen(bNodeTree *UNUSED(ntree), bNode *node)
+static void node_composit_init_keyingscreen(const bContext *C, PointerRNA *ptr)
 {
+  bNode *node = (bNode *)ptr->data;
+
   NodeKeyingScreenData *data = MEM_cnew<NodeKeyingScreenData>(__func__);
   node->storage = data;
+
+  const Scene *scene = CTX_data_scene(C);
+  node->id = (ID *)scene->clip;
+  id_us_plus(node->id);
 }
 
 static void node_composit_buts_keyingscreen(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -71,7 +80,7 @@ void register_node_type_cmp_keyingscreen()
   cmp_node_type_base(&ntype, CMP_NODE_KEYINGSCREEN, "Keying Screen", NODE_CLASS_MATTE);
   ntype.declare = file_ns::cmp_node_keyingscreen_declare;
   ntype.draw_buttons = file_ns::node_composit_buts_keyingscreen;
-  node_type_init(&ntype, file_ns::node_composit_init_keyingscreen);
+  ntype.initfunc_api = file_ns::node_composit_init_keyingscreen;
   node_type_storage(
       &ntype, "NodeKeyingScreenData", node_free_standard_storage, node_copy_standard_storage);
 
diff --git a/source/blender/nodes/composite/nodes/node_composite_planetrackdeform.cc b/source/blender/nodes/composite/nodes/node_composite_planetrackdeform.cc
index fb0c03579a2..8055e350d51 100644
--- a/source/blender/nodes/composite/nodes/node_composite_planetrackdeform.cc
+++ b/source/blender/nodes/composite/nodes/node_composite_planetrackdeform.cc
@@ -22,12 +22,18 @@ static void cmp_node_planetrackdeform_declare(NodeDeclarationBuilder &b)
   b.add_output<decl::Float>(N_("Plane"));
 }
 
-static void init(bNodeTree *UNUSED(ntree), bNode *node)
+static void init(const bContext *C, PointerRNA *ptr)
 {
+  bNode *node = (bNode *)ptr->data;
+
   NodePlaneTrackDeformData *data = MEM_cnew<NodePlaneTrackDeformData>(__func__);
   data->motion_blur_samples = 16;
   data->motion_blur_shutter = 0.5f;
   node->storage = data;
+
+  const Scene *scene = CTX_data_scene(C);
+  node->id = (ID *)scene->clip;
+  id_us_plus(node->id);
 }
 
 static void node_composit_buts_planetrackdeform(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -90,7 +96,7 @@ void register_node_type_cmp_planetrackdeform()
   cmp_node_type_base(&ntype, CMP_NODE_PLANETRACKDEFORM, "Plane Track Deform", NODE_CLASS_DISTORT);
   ntype.declare = file_ns::cmp_node_planetrackdeform_declare;
   ntype.draw_buttons = file_ns::node_composit_buts_planetrackdeform;
-  node_type_init(&ntype, file_ns::init);
+  ntype.initfunc_api = file_ns::init;
   node_type_storage(
       &ntype, "NodePlaneTrackDeformData", node_free_standard_storage, node_copy_standard_storage);
 
diff --git a/source/blender/nodes/composite/nodes/node_composite_trackpos.cc b/source/blender/nodes/composite/nodes/node_composite_trackpos.cc
index 3dc68b8ef0b..723b82998ee 100644
--- a/source/blender/nodes/composite/nodes/node_composite_trackpos.cc
+++ b/source/blender/nodes/composite/nodes/node_composite_trackpos.cc
@@ -5,6 +5,8 @@
  * \ingroup cmpnodes
  */
 
+#include "BKE_context.h"
+#include "BKE_lib_id.h"
 #include "BKE_tracking.h"
 
 #include "RNA_access.h"
@@ -24,11 +26,16 @@ static void cmp_node_trackpos_declare(NodeDeclarationBuilder &b)
   b.add_output<decl::Vector>(N_("Speed")).subtype(PROP_VELOCITY);
 }
 
-static void init(bNodeTree *UNUSED(ntree), bNode *node)
+static void init(const bContext *C, PointerRNA *ptr)
 {
-  NodeTrackPosData *data = MEM_cnew<NodeTrackPosData>(__func__);
+  bNode *node = (bNode *)ptr->data;
 
+  NodeTrackPosData *data = MEM_cnew<NodeTrackPosData>(__func__);
   node->storage = data;
+
+  const Scene *scene = CTX_data_scene(C);
+  node->id = (ID *)scene->clip;
+  id_us_plus(node->id);
 }
 
 static void node_composit_buts_trackpos(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -90,7 +97,7 @@ void register_node_type_cmp_trackpos()
   cmp_node_type_base(&ntype, CMP_NODE_TRACKPOS, "Track Position", NODE_CLASS_INPUT);
   ntype.declare = file_ns::cmp_node_trackpos_declare;
   ntype.draw_buttons = file_ns::node_composit_buts_trackpos;
-  node_type_init(&ntype, file_ns::init);
+  ntype.initfunc_api = file_ns::init;
   node_type_storage(
       &ntype, "NodeTrackPosData", node_free_standard_storage, node_copy_standard_storage);



More information about the Bf-blender-cvs mailing list