diff options
Diffstat (limited to 'source/blender/nodes/composite/nodes/node_composite_colorMatte.cc')
-rw-r--r-- | source/blender/nodes/composite/nodes/node_composite_colorMatte.cc | 48 |
1 files changed, 35 insertions, 13 deletions
diff --git a/source/blender/nodes/composite/nodes/node_composite_colorMatte.cc b/source/blender/nodes/composite/nodes/node_composite_colorMatte.cc index fc9a0075b14..367b046f3f6 100644 --- a/source/blender/nodes/composite/nodes/node_composite_colorMatte.cc +++ b/source/blender/nodes/composite/nodes/node_composite_colorMatte.cc @@ -21,20 +21,24 @@ * \ingroup cmpnodes */ +#include "UI_interface.h" +#include "UI_resources.h" + #include "node_composite_util.hh" -/* ******************* Color Key ********************************************************** */ -static bNodeSocketTemplate cmp_node_color_in[] = { - {SOCK_RGBA, N_("Image"), 1.0f, 1.0f, 1.0f, 1.0f}, - {SOCK_RGBA, N_("Key Color"), 1.0f, 1.0f, 1.0f, 1.0f}, - {-1, ""}, -}; +/* ******************* Color Matte ********************************************************** */ + +namespace blender::nodes { + +static void cmp_node_color_matte_declare(NodeDeclarationBuilder &b) +{ + b.add_input<decl::Color>(N_("Image")).default_value({1.0f, 1.0f, 1.0f, 1.0f}); + b.add_input<decl::Color>(N_("Key Color")).default_value({1.0f, 1.0f, 1.0f, 1.0f}); + b.add_output<decl::Color>(N_("Image")); + b.add_output<decl::Float>(N_("Matte")); +} -static bNodeSocketTemplate cmp_node_color_out[] = { - {SOCK_RGBA, N_("Image")}, - {SOCK_FLOAT, N_("Matte")}, - {-1, ""}, -}; +} // namespace blender::nodes static void node_composit_init_color_matte(bNodeTree *UNUSED(ntree), bNode *node) { @@ -47,12 +51,30 @@ static void node_composit_init_color_matte(bNodeTree *UNUSED(ntree), bNode *node c->fstrength = 1.0f; } -void register_node_type_cmp_color_matte(void) +static void node_composit_buts_color_matte(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiLayout *col; + + col = uiLayoutColumn(layout, true); + uiItemR( + col, ptr, "color_hue", UI_ITEM_R_SPLIT_EMPTY_NAME | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); + uiItemR(col, + ptr, + "color_saturation", + UI_ITEM_R_SPLIT_EMPTY_NAME | UI_ITEM_R_SLIDER, + nullptr, + ICON_NONE); + uiItemR( + col, ptr, "color_value", UI_ITEM_R_SPLIT_EMPTY_NAME | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); +} + +void register_node_type_cmp_color_matte() { static bNodeType ntype; cmp_node_type_base(&ntype, CMP_NODE_COLOR_MATTE, "Color Key", NODE_CLASS_MATTE, NODE_PREVIEW); - node_type_socket_templates(&ntype, cmp_node_color_in, cmp_node_color_out); + ntype.declare = blender::nodes::cmp_node_color_matte_declare; + ntype.draw_buttons = node_composit_buts_color_matte; node_type_init(&ntype, node_composit_init_color_matte); node_type_storage(&ntype, "NodeChroma", node_free_standard_storage, node_copy_standard_storage); |