diff options
Diffstat (limited to 'source/blender/nodes/composite/nodes')
12 files changed, 95 insertions, 10 deletions
diff --git a/source/blender/nodes/composite/nodes/node_composite_cryptomatte.cc b/source/blender/nodes/composite/nodes/node_composite_cryptomatte.cc index 9193f91087a..5462441660c 100644 --- a/source/blender/nodes/composite/nodes/node_composite_cryptomatte.cc +++ b/source/blender/nodes/composite/nodes/node_composite_cryptomatte.cc @@ -17,12 +17,15 @@ #include "BKE_context.h" #include "BKE_cryptomatte.hh" #include "BKE_global.h" +#include "BKE_image.h" #include "BKE_lib_id.h" #include "BKE_library.h" #include "BKE_main.h" #include "MEM_guardedalloc.h" +#include "RE_pipeline.h" + #include <optional> /* -------------------------------------------------------------------- */ diff --git a/source/blender/nodes/composite/nodes/node_composite_curves.cc b/source/blender/nodes/composite/nodes/node_composite_curves.cc index fff0d467f75..802664d7934 100644 --- a/source/blender/nodes/composite/nodes/node_composite_curves.cc +++ b/source/blender/nodes/composite/nodes/node_composite_curves.cc @@ -5,6 +5,8 @@ * \ingroup cmpnodes */ +#include "BKE_colortools.h" + #include "UI_interface.h" #include "UI_resources.h" diff --git a/source/blender/nodes/composite/nodes/node_composite_diff_matte.cc b/source/blender/nodes/composite/nodes/node_composite_diff_matte.cc index 20dd61a9725..b87bbe439db 100644 --- a/source/blender/nodes/composite/nodes/node_composite_diff_matte.cc +++ b/source/blender/nodes/composite/nodes/node_composite_diff_matte.cc @@ -19,7 +19,7 @@ static void cmp_node_diff_matte_declare(NodeDeclarationBuilder &b) b.add_input<decl::Color>(N_("Image 1")).default_value({1.0f, 1.0f, 1.0f, 1.0f}); b.add_input<decl::Color>(N_("Image 2")).default_value({1.0f, 1.0f, 1.0f, 1.0f}); b.add_output<decl::Color>(N_("Image")); - b.add_output<decl::Color>(N_("Matte")); + b.add_output<decl::Float>(N_("Matte")); } static void node_composit_init_diff_matte(bNodeTree *UNUSED(ntree), bNode *node) diff --git a/source/blender/nodes/composite/nodes/node_composite_huecorrect.cc b/source/blender/nodes/composite/nodes/node_composite_huecorrect.cc index bb5e6bf06a8..d252d96f8c3 100644 --- a/source/blender/nodes/composite/nodes/node_composite_huecorrect.cc +++ b/source/blender/nodes/composite/nodes/node_composite_huecorrect.cc @@ -7,6 +7,8 @@ #include "node_composite_util.hh" +#include "BKE_colortools.h" + namespace blender::nodes::node_composite_huecorrect_cc { static void cmp_node_huecorrect_declare(NodeDeclarationBuilder &b) diff --git a/source/blender/nodes/composite/nodes/node_composite_image.cc b/source/blender/nodes/composite/nodes/node_composite_image.cc index d071e9f13db..d75aa575395 100644 --- a/source/blender/nodes/composite/nodes/node_composite_image.cc +++ b/source/blender/nodes/composite/nodes/node_composite_image.cc @@ -12,6 +12,7 @@ #include "BKE_context.h" #include "BKE_global.h" +#include "BKE_image.h" #include "BKE_lib_id.h" #include "BKE_main.h" #include "BKE_scene.h" @@ -19,6 +20,7 @@ #include "DNA_scene_types.h" #include "RE_engine.h" +#include "RE_pipeline.h" #include "RNA_access.h" diff --git a/source/blender/nodes/composite/nodes/node_composite_keyingscreen.cc b/source/blender/nodes/composite/nodes/node_composite_keyingscreen.cc index c3ed5cd7aa8..e835ee9e721 100644 --- a/source/blender/nodes/composite/nodes/node_composite_keyingscreen.cc +++ b/source/blender/nodes/composite/nodes/node_composite_keyingscreen.cc @@ -6,10 +6,15 @@ */ #include "DNA_movieclip_types.h" +#include "DNA_tracking_types.h" #include "BLI_math_base.h" #include "BLI_math_color.h" +#include "BKE_context.h" +#include "BKE_lib_id.h" +#include "BKE_tracking.h" + #include "RNA_access.h" #include "RNA_prototypes.h" @@ -27,10 +32,23 @@ 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); + if (scene->clip) { + MovieClip *clip = scene->clip; + + node->id = &clip->id; + id_us_plus(&clip->id); + + const MovieTrackingObject *tracking_object = BKE_tracking_object_get_active(&clip->tracking); + BLI_strncpy(data->tracking_object, tracking_object->name, sizeof(data->tracking_object)); + } } static void node_composit_buts_keyingscreen(uiLayout *layout, bContext *C, PointerRNA *ptr) @@ -71,7 +89,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_map_value.cc b/source/blender/nodes/composite/nodes/node_composite_map_value.cc index b069cce93fc..bb42628ed3d 100644 --- a/source/blender/nodes/composite/nodes/node_composite_map_value.cc +++ b/source/blender/nodes/composite/nodes/node_composite_map_value.cc @@ -5,6 +5,8 @@ * \ingroup cmpnodes */ +#include "BKE_texture.h" + #include "RNA_access.h" #include "UI_interface.h" diff --git a/source/blender/nodes/composite/nodes/node_composite_moviedistortion.cc b/source/blender/nodes/composite/nodes/node_composite_moviedistortion.cc index 9c6c6a40b2c..4d52a767b8a 100644 --- a/source/blender/nodes/composite/nodes/node_composite_moviedistortion.cc +++ b/source/blender/nodes/composite/nodes/node_composite_moviedistortion.cc @@ -7,6 +7,7 @@ #include "BKE_context.h" #include "BKE_lib_id.h" +#include "BKE_tracking.h" #include "UI_interface.h" #include "UI_resources.h" diff --git a/source/blender/nodes/composite/nodes/node_composite_output_file.cc b/source/blender/nodes/composite/nodes/node_composite_output_file.cc index f1621f83ac3..84235b085a4 100644 --- a/source/blender/nodes/composite/nodes/node_composite_output_file.cc +++ b/source/blender/nodes/composite/nodes/node_composite_output_file.cc @@ -114,7 +114,7 @@ void ntreeCompositOutputFileUniqueLayer(ListBase *list, bNodeSocket *ntreeCompositOutputFileAddSocket(bNodeTree *ntree, bNode *node, const char *name, - ImageFormatData *im_format) + const ImageFormatData *im_format) { NodeImageMultiFile *nimf = (NodeImageMultiFile *)node->storage; bNodeSocket *sock = nodeAddStaticSocket( diff --git a/source/blender/nodes/composite/nodes/node_composite_planetrackdeform.cc b/source/blender/nodes/composite/nodes/node_composite_planetrackdeform.cc index fb0c03579a2..6557478fc4b 100644 --- a/source/blender/nodes/composite/nodes/node_composite_planetrackdeform.cc +++ b/source/blender/nodes/composite/nodes/node_composite_planetrackdeform.cc @@ -5,6 +5,13 @@ * \ingroup cmpnodes */ +#include "DNA_movieclip_types.h" +#include "DNA_tracking_types.h" + +#include "BKE_context.h" +#include "BKE_lib_id.h" +#include "BKE_tracking.h" + #include "RNA_access.h" #include "RNA_prototypes.h" @@ -22,12 +29,33 @@ 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); + if (scene->clip) { + MovieClip *clip = scene->clip; + MovieTracking *tracking = &clip->tracking; + + node->id = &clip->id; + id_us_plus(&clip->id); + + const MovieTrackingObject *tracking_object = BKE_tracking_object_get_active(tracking); + BLI_strncpy(data->tracking_object, tracking_object->name, sizeof(data->tracking_object)); + + const MovieTrackingPlaneTrack *active_plane_track = BKE_tracking_plane_track_get_active( + tracking); + if (active_plane_track) { + BLI_strncpy( + data->plane_track_name, active_plane_track->name, sizeof(data->plane_track_name)); + } + } } static void node_composit_buts_planetrackdeform(uiLayout *layout, bContext *C, PointerRNA *ptr) @@ -90,7 +118,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 17a086f306f..0e99ff59327 100644 --- a/source/blender/nodes/composite/nodes/node_composite_trackpos.cc +++ b/source/blender/nodes/composite/nodes/node_composite_trackpos.cc @@ -5,6 +5,13 @@ * \ingroup cmpnodes */ +#include "DNA_movieclip_types.h" +#include "DNA_tracking_types.h" + +#include "BKE_context.h" +#include "BKE_lib_id.h" +#include "BKE_tracking.h" + #include "RNA_access.h" #include "RNA_prototypes.h" @@ -22,11 +29,29 @@ 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); + if (scene->clip) { + MovieClip *clip = scene->clip; + MovieTracking *tracking = &clip->tracking; + + node->id = &clip->id; + id_us_plus(&clip->id); + + const MovieTrackingObject *tracking_object = BKE_tracking_object_get_active(tracking); + BLI_strncpy(data->tracking_object, tracking_object->name, sizeof(data->tracking_object)); + + const MovieTrackingTrack *active_track = BKE_tracking_track_get_active(tracking); + if (active_track) { + BLI_strncpy(data->track_name, active_track->name, sizeof(data->track_name)); + } + } } static void node_composit_buts_trackpos(uiLayout *layout, bContext *C, PointerRNA *ptr) @@ -88,7 +113,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); diff --git a/source/blender/nodes/composite/nodes/node_composite_val_to_rgb.cc b/source/blender/nodes/composite/nodes/node_composite_val_to_rgb.cc index f71028bf8c1..df669d5beda 100644 --- a/source/blender/nodes/composite/nodes/node_composite_val_to_rgb.cc +++ b/source/blender/nodes/composite/nodes/node_composite_val_to_rgb.cc @@ -7,6 +7,8 @@ #include "node_composite_util.hh" +#include "BKE_colorband.h" + /* **************** VALTORGB ******************** */ namespace blender::nodes::node_composite_val_to_rgb_cc { @@ -47,7 +49,7 @@ namespace blender::nodes::node_composite_val_to_rgb_cc { static void cmp_node_rgbtobw_declare(NodeDeclarationBuilder &b) { b.add_input<decl::Color>(N_("Image")).default_value({0.8f, 0.8f, 0.8f, 1.0f}); - b.add_output<decl::Color>(N_("Val")); + b.add_output<decl::Float>(N_("Val")); } } // namespace blender::nodes::node_composite_val_to_rgb_cc |