Cleanup: Compositor: Migrate most converter nodes to new socket builder

This migrates most nodes except for the switch view node.
This node requires dynamic sockets so its implementation will be more involved.
This commit is contained in:
Aaron Carlisle
2021-09-29 14:48:21 -04:00
parent d3d021601d
commit a2e321aa6d
9 changed files with 181 additions and 148 deletions

View File

@@ -25,21 +25,22 @@
/* **************** ID Mask ******************** */
static bNodeSocketTemplate cmp_node_idmask_in[] = {
{SOCK_FLOAT, N_("ID value"), 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, PROP_NONE},
{-1, ""},
};
static bNodeSocketTemplate cmp_node_idmask_out[] = {
{SOCK_FLOAT, N_("Alpha")},
{-1, ""},
};
namespace blender::nodes {
static void cmp_node_idmask_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Float>("ID value").default_value(1.0f).min(0.0f).max(1.0f);
b.add_output<decl::Float>("Alpha");
}
} // namespace blender::nodes
void register_node_type_cmp_idmask(void)
{
static bNodeType ntype;
cmp_node_type_base(&ntype, CMP_NODE_ID_MASK, "ID Mask", NODE_CLASS_CONVERTER, 0);
node_type_socket_templates(&ntype, cmp_node_idmask_in, cmp_node_idmask_out);
ntype.declare = blender::nodes::cmp_node_idmask_declare;
nodeRegisterType(&ntype);
}

View File

@@ -24,20 +24,25 @@
#include "node_composite_util.hh"
/* **************** SCALAR MATH ******************** */
static bNodeSocketTemplate cmp_node_math_in[] = {
{SOCK_FLOAT, N_("Value"), 0.5f, 0.5f, 0.5f, 1.0f, -10000.0f, 10000.0f, PROP_NONE},
{SOCK_FLOAT, N_("Value"), 0.5f, 0.5f, 0.5f, 1.0f, -10000.0f, 10000.0f, PROP_NONE},
{SOCK_FLOAT, N_("Value"), 0.0f, 0.5f, 0.5f, 1.0f, -10000.0f, 10000.0f, PROP_NONE},
{-1, ""}};
static bNodeSocketTemplate cmp_node_math_out[] = {{SOCK_FLOAT, N_("Value")}, {-1, ""}};
namespace blender::nodes {
static void cmp_node_math_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Float>("Value").default_value(0.5f).min(-10000.0f).max(10000.0f);
b.add_input<decl::Float>("Value", "Value_001").default_value(0.5f).min(-10000.0f).max(10000.0f);
b.add_input<decl::Float>("Value", "Value_002").default_value(0.5f).min(-10000.0f).max(10000.0f);
b.add_output<decl::Float>("Value");
}
} // namespace blender::nodes
void register_node_type_cmp_math(void)
{
static bNodeType ntype;
cmp_node_type_base(&ntype, CMP_NODE_MATH, "Math", NODE_CLASS_CONVERTER, 0);
node_type_socket_templates(&ntype, cmp_node_math_in, cmp_node_math_out);
ntype.declare = blender::nodes::cmp_node_math_declare;
node_type_label(&ntype, node_math_label);
node_type_update(&ntype, node_math_update);

View File

@@ -25,21 +25,22 @@
/* **************** Premul and Key Alpha Convert ******************** */
static bNodeSocketTemplate cmp_node_premulkey_in[] = {
{SOCK_RGBA, N_("Image"), 1.0f, 1.0f, 1.0f, 1.0f},
{-1, ""},
};
static bNodeSocketTemplate cmp_node_premulkey_out[] = {
{SOCK_RGBA, N_("Image")},
{-1, ""},
};
namespace blender::nodes {
static void cmp_node_premulkey_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Color>("Image");
}
} // namespace blender::nodes
void register_node_type_cmp_premulkey(void)
{
static bNodeType ntype;
cmp_node_type_base(&ntype, CMP_NODE_PREMULKEY, "Alpha Convert", NODE_CLASS_CONVERTER, 0);
node_type_socket_templates(&ntype, cmp_node_premulkey_in, cmp_node_premulkey_out);
ntype.declare = blender::nodes::cmp_node_premulkey_declare;
nodeRegisterType(&ntype);
}

View File

@@ -24,47 +24,51 @@
#include "node_composite_util.hh"
/* **************** SEPARATE HSVA ******************** */
static bNodeSocketTemplate cmp_node_sephsva_in[] = {
{SOCK_RGBA, N_("Image"), 1.0f, 1.0f, 1.0f, 1.0f},
{-1, ""},
};
static bNodeSocketTemplate cmp_node_sephsva_out[] = {
{SOCK_FLOAT, N_("H")},
{SOCK_FLOAT, N_("S")},
{SOCK_FLOAT, N_("V")},
{SOCK_FLOAT, N_("A")},
{-1, ""},
};
namespace blender::nodes {
static void cmp_node_sephsva_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Float>("H");
b.add_output<decl::Float>("S");
b.add_output<decl::Float>("V");
b.add_output<decl::Float>("A");
}
} // namespace blender::nodes
void register_node_type_cmp_sephsva(void)
{
static bNodeType ntype;
cmp_node_type_base(&ntype, CMP_NODE_SEPHSVA, "Separate HSVA", NODE_CLASS_CONVERTER, 0);
node_type_socket_templates(&ntype, cmp_node_sephsva_in, cmp_node_sephsva_out);
ntype.declare = blender::nodes::cmp_node_sephsva_declare;
nodeRegisterType(&ntype);
}
/* **************** COMBINE HSVA ******************** */
static bNodeSocketTemplate cmp_node_combhsva_in[] = {
{SOCK_FLOAT, N_("H"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE},
{SOCK_FLOAT, N_("S"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE},
{SOCK_FLOAT, N_("V"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE},
{SOCK_FLOAT, N_("A"), 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE},
{-1, ""},
};
static bNodeSocketTemplate cmp_node_combhsva_out[] = {
{SOCK_RGBA, N_("Image")},
{-1, ""},
};
namespace blender::nodes {
static void cmp_node_combhsva_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Float>("H").min(0.0f).max(1.0f);
b.add_input<decl::Float>("S").min(0.0f).max(1.0f);
b.add_input<decl::Float>("V").min(0.0f).max(1.0f);
b.add_input<decl::Float>("A").default_value(1.0f).min(0.0f).max(1.0f);
b.add_output<decl::Color>("Image");
}
} // namespace blender::nodes
void register_node_type_cmp_combhsva(void)
{
static bNodeType ntype;
cmp_node_type_base(&ntype, CMP_NODE_COMBHSVA, "Combine HSVA", NODE_CLASS_CONVERTER, 0);
node_type_socket_templates(&ntype, cmp_node_combhsva_in, cmp_node_combhsva_out);
ntype.declare = blender::nodes::cmp_node_combhsva_declare;
nodeRegisterType(&ntype);
}

View File

@@ -24,47 +24,51 @@
#include "node_composite_util.hh"
/* **************** SEPARATE RGBA ******************** */
static bNodeSocketTemplate cmp_node_seprgba_in[] = {
{SOCK_RGBA, N_("Image"), 1.0f, 1.0f, 1.0f, 1.0f},
{-1, ""},
};
static bNodeSocketTemplate cmp_node_seprgba_out[] = {
{SOCK_FLOAT, N_("R")},
{SOCK_FLOAT, N_("G")},
{SOCK_FLOAT, N_("B")},
{SOCK_FLOAT, N_("A")},
{-1, ""},
};
namespace blender::nodes {
static void cmp_node_seprgba_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Float>("R");
b.add_output<decl::Float>("G");
b.add_output<decl::Float>("B");
b.add_output<decl::Float>("A");
}
} // namespace blender::nodes
void register_node_type_cmp_seprgba(void)
{
static bNodeType ntype;
cmp_node_type_base(&ntype, CMP_NODE_SEPRGBA, "Separate RGBA", NODE_CLASS_CONVERTER, 0);
node_type_socket_templates(&ntype, cmp_node_seprgba_in, cmp_node_seprgba_out);
ntype.declare = blender::nodes::cmp_node_seprgba_declare;
nodeRegisterType(&ntype);
}
/* **************** COMBINE RGBA ******************** */
static bNodeSocketTemplate cmp_node_combrgba_in[] = {
{SOCK_FLOAT, N_("R"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE},
{SOCK_FLOAT, N_("G"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE},
{SOCK_FLOAT, N_("B"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE},
{SOCK_FLOAT, N_("A"), 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE},
{-1, ""},
};
static bNodeSocketTemplate cmp_node_combrgba_out[] = {
{SOCK_RGBA, N_("Image")},
{-1, ""},
};
namespace blender::nodes {
static void cmp_node_combrgba_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Float>("R").min(0.0f).max(1.0f);
b.add_input<decl::Float>("G").min(0.0f).max(1.0f);
b.add_input<decl::Float>("B").min(0.0f).max(1.0f);
b.add_input<decl::Float>("A").default_value(1.0f).min(0.0f).max(1.0f);
b.add_output<decl::Color>("Image");
}
} // namespace blender::nodes
void register_node_type_cmp_combrgba(void)
{
static bNodeType ntype;
cmp_node_type_base(&ntype, CMP_NODE_COMBRGBA, "Combine RGBA", NODE_CLASS_CONVERTER, 0);
node_type_socket_templates(&ntype, cmp_node_combrgba_in, cmp_node_combrgba_out);
ntype.declare = blender::nodes::cmp_node_combrgba_declare;
nodeRegisterType(&ntype);
}

View File

@@ -24,15 +24,19 @@
#include "node_composite_util.hh"
/* **************** SEPARATE YCCA ******************** */
static bNodeSocketTemplate cmp_node_sepycca_in[] = {
{SOCK_RGBA, N_("Image"), 1.0f, 1.0f, 1.0f, 1.0f}, {-1, ""}};
static bNodeSocketTemplate cmp_node_sepycca_out[] = {
{SOCK_FLOAT, N_("Y")},
{SOCK_FLOAT, N_("Cb")},
{SOCK_FLOAT, N_("Cr")},
{SOCK_FLOAT, N_("A")},
{-1, ""},
};
namespace blender::nodes {
static void cmp_node_sepycca_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Float>("Y");
b.add_output<decl::Float>("Cb");
b.add_output<decl::Float>("Cr");
b.add_output<decl::Float>("A");
}
} // namespace blender::nodes
static void node_composit_init_mode_sepycca(bNodeTree *UNUSED(ntree), bNode *node)
{
@@ -44,24 +48,26 @@ void register_node_type_cmp_sepycca(void)
static bNodeType ntype;
cmp_node_type_base(&ntype, CMP_NODE_SEPYCCA, "Separate YCbCrA", NODE_CLASS_CONVERTER, 0);
node_type_socket_templates(&ntype, cmp_node_sepycca_in, cmp_node_sepycca_out);
ntype.declare = blender::nodes::cmp_node_sepycca_declare;
node_type_init(&ntype, node_composit_init_mode_sepycca);
nodeRegisterType(&ntype);
}
/* **************** COMBINE YCCA ******************** */
static bNodeSocketTemplate cmp_node_combycca_in[] = {
{SOCK_FLOAT, N_("Y"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE},
{SOCK_FLOAT, N_("Cb"), 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE},
{SOCK_FLOAT, N_("Cr"), 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE},
{SOCK_FLOAT, N_("A"), 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE},
{-1, ""},
};
static bNodeSocketTemplate cmp_node_combycca_out[] = {
{SOCK_RGBA, N_("Image")},
{-1, ""},
};
namespace blender::nodes {
static void cmp_node_combycca_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Float>("Y").min(0.0f).max(1.0f);
b.add_input<decl::Float>("Cb").default_value(0.5f).min(0.0f).max(1.0f);
b.add_input<decl::Float>("Cr").default_value(0.5f).min(0.0f).max(1.0f);
b.add_input<decl::Float>("A").default_value(1.0f).min(0.0f).max(1.0f);
b.add_output<decl::Color>("Image");
}
} // namespace blender::nodes
static void node_composit_init_mode_combycca(bNodeTree *UNUSED(ntree), bNode *node)
{
@@ -73,7 +79,7 @@ void register_node_type_cmp_combycca(void)
static bNodeType ntype;
cmp_node_type_base(&ntype, CMP_NODE_COMBYCCA, "Combine YCbCrA", NODE_CLASS_CONVERTER, 0);
node_type_socket_templates(&ntype, cmp_node_combycca_in, cmp_node_combycca_out);
ntype.declare = blender::nodes::cmp_node_combycca_declare;
node_type_init(&ntype, node_composit_init_mode_combycca);
nodeRegisterType(&ntype);

View File

@@ -24,45 +24,51 @@
#include "node_composite_util.hh"
/* **************** SEPARATE YUVA ******************** */
static bNodeSocketTemplate cmp_node_sepyuva_in[] = {
{SOCK_RGBA, N_("Image"), 1.0f, 1.0f, 1.0f, 1.0f}, {-1, ""}};
static bNodeSocketTemplate cmp_node_sepyuva_out[] = {
{SOCK_FLOAT, N_("Y")},
{SOCK_FLOAT, N_("U")},
{SOCK_FLOAT, N_("V")},
{SOCK_FLOAT, N_("A")},
{-1, ""},
};
namespace blender::nodes {
static void cmp_node_sepyuva_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Float>("Y");
b.add_output<decl::Float>("U");
b.add_output<decl::Float>("V");
b.add_output<decl::Float>("A");
}
} // namespace blender::nodes
void register_node_type_cmp_sepyuva(void)
{
static bNodeType ntype;
cmp_node_type_base(&ntype, CMP_NODE_SEPYUVA, "Separate YUVA", NODE_CLASS_CONVERTER, 0);
node_type_socket_templates(&ntype, cmp_node_sepyuva_in, cmp_node_sepyuva_out);
ntype.declare = blender::nodes::cmp_node_sepyuva_declare;
nodeRegisterType(&ntype);
}
/* **************** COMBINE YUVA ******************** */
static bNodeSocketTemplate cmp_node_combyuva_in[] = {
{SOCK_FLOAT, N_("Y"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE},
{SOCK_FLOAT, N_("U"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE},
{SOCK_FLOAT, N_("V"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE},
{SOCK_FLOAT, N_("A"), 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_NONE},
{-1, ""},
};
static bNodeSocketTemplate cmp_node_combyuva_out[] = {
{SOCK_RGBA, N_("Image")},
{-1, ""},
};
namespace blender::nodes {
static void cmp_node_combyuva_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Float>("Y").min(0.0f).max(1.0f);
b.add_input<decl::Float>("U").min(0.0f).max(1.0f);
b.add_input<decl::Float>("V").min(0.0f).max(1.0f);
b.add_input<decl::Float>("A").default_value(1.0f).min(0.0f).max(1.0f);
b.add_output<decl::Color>("Image");
}
} // namespace blender::nodes
void register_node_type_cmp_combyuva(void)
{
static bNodeType ntype;
cmp_node_type_base(&ntype, CMP_NODE_COMBYUVA, "Combine YUVA", NODE_CLASS_CONVERTER, 0);
node_type_socket_templates(&ntype, cmp_node_combyuva_in, cmp_node_combyuva_out);
ntype.declare = blender::nodes::cmp_node_combyuva_declare;
nodeRegisterType(&ntype);
}

View File

@@ -24,15 +24,17 @@
#include "node_composite_util.hh"
/* **************** SET ALPHA ******************** */
static bNodeSocketTemplate cmp_node_setalpha_in[] = {
{SOCK_RGBA, N_("Image"), 0.0f, 0.0f, 0.0f, 1.0f},
{SOCK_FLOAT, N_("Alpha"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE},
{-1, ""},
};
static bNodeSocketTemplate cmp_node_setalpha_out[] = {
{SOCK_RGBA, N_("Image")},
{-1, ""},
};
namespace blender::nodes {
static void cmp_node_setalpha_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_input<decl::Float>("Alpha").default_value(1.0f).min(0.0f).max(1.0f);
b.add_output<decl::Color>("Image");
}
} // namespace blender::nodes
static void node_composit_init_setalpha(bNodeTree *UNUSED(ntree), bNode *node)
{
@@ -46,7 +48,7 @@ void register_node_type_cmp_setalpha(void)
static bNodeType ntype;
cmp_node_type_base(&ntype, CMP_NODE_SETALPHA, "Set Alpha", NODE_CLASS_CONVERTER, 0);
node_type_socket_templates(&ntype, cmp_node_setalpha_in, cmp_node_setalpha_out);
ntype.declare = blender::nodes::cmp_node_setalpha_declare;
node_type_init(&ntype, node_composit_init_setalpha);
node_type_storage(
&ntype, "NodeSetAlpha", node_free_standard_storage, node_copy_standard_storage);

View File

@@ -24,15 +24,17 @@
#include "node_composite_util.hh"
/* **************** VALTORGB ******************** */
static bNodeSocketTemplate cmp_node_valtorgb_in[] = {
{SOCK_FLOAT, N_("Fac"), 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
{-1, ""},
};
static bNodeSocketTemplate cmp_node_valtorgb_out[] = {
{SOCK_RGBA, N_("Image")},
{SOCK_FLOAT, N_("Alpha")},
{-1, ""},
};
namespace blender::nodes {
static void cmp_node_valtorgb_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Float>("Fac").default_value(0.5f).min(0.0f).max(1.0f).subtype(PROP_FACTOR);
b.add_output<decl::Color>("Image");
b.add_output<decl::Color>("Alpha");
}
} // namespace blender::nodes
static void node_composit_init_valtorgb(bNodeTree *UNUSED(ntree), bNode *node)
{
@@ -44,7 +46,7 @@ void register_node_type_cmp_valtorgb(void)
static bNodeType ntype;
cmp_node_type_base(&ntype, CMP_NODE_VALTORGB, "ColorRamp", NODE_CLASS_CONVERTER, 0);
node_type_socket_templates(&ntype, cmp_node_valtorgb_in, cmp_node_valtorgb_out);
ntype.declare = blender::nodes::cmp_node_valtorgb_declare;
node_type_size(&ntype, 240, 200, 320);
node_type_init(&ntype, node_composit_init_valtorgb);
node_type_storage(&ntype, "ColorBand", node_free_standard_storage, node_copy_standard_storage);
@@ -53,21 +55,23 @@ void register_node_type_cmp_valtorgb(void)
}
/* **************** RGBTOBW ******************** */
static bNodeSocketTemplate cmp_node_rgbtobw_in[] = {
{SOCK_RGBA, N_("Image"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f},
{-1, ""},
};
static bNodeSocketTemplate cmp_node_rgbtobw_out[] = {
{SOCK_FLOAT, N_("Val"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f},
{-1, ""},
};
namespace blender::nodes {
static void cmp_node_rgbtobw_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({0.8f, 0.8f, 0.8f, 1.0f});
b.add_output<decl::Color>("Val");
}
} // namespace blender::nodes
void register_node_type_cmp_rgbtobw(void)
{
static bNodeType ntype;
cmp_node_type_base(&ntype, CMP_NODE_RGBTOBW, "RGB to BW", NODE_CLASS_CONVERTER, 0);
node_type_socket_templates(&ntype, cmp_node_rgbtobw_in, cmp_node_rgbtobw_out);
ntype.declare = blender::nodes::cmp_node_rgbtobw_declare;
node_type_size_preset(&ntype, NODE_SIZE_SMALL);
nodeRegisterType(&ntype);