From 611da3b7d6d62861f9a5e62d68a43cd560e8838c Mon Sep 17 00:00:00 2001 From: Aaron Carlisle Date: Wed, 5 Jan 2022 15:46:43 -0500 Subject: Cleanup: Use new socket builder API --- .../nodes/shader/nodes/node_shader_camera.cc | 15 ++++++----- .../nodes/shader/nodes/node_shader_displacement.cc | 25 +++++++------------ .../nodes/shader/nodes/node_shader_gamma.cc | 24 ++++++++---------- .../nodes/shader/nodes/node_shader_holdout.cc | 16 ++++-------- .../nodes/shader/nodes/node_shader_mix_shader.cc | 21 ++++++---------- .../nodes/shader/nodes/node_shader_object_info.cc | 20 +++++++-------- .../nodes/shader/nodes/node_shader_output_aov.cc | 12 ++++----- .../nodes/shader/nodes/node_shader_output_light.cc | 11 +++----- .../shader/nodes/node_shader_output_linestyle.cc | 29 ++++++++++++++-------- .../shader/nodes/node_shader_output_material.cc | 23 +++++------------ .../nodes/shader/nodes/node_shader_output_world.cc | 12 ++++----- .../shader/nodes/node_shader_shader_to_rgb.cc | 19 +++++--------- .../nodes/shader/nodes/node_shader_tangent.cc | 10 +++----- .../shader/nodes/node_shader_uv_along_stroke.cc | 12 ++++----- .../nodes/shader/nodes/node_shader_uvmap.cc | 12 ++++----- .../nodes/node_shader_vector_displacement.cc | 23 ++++++----------- .../nodes/shader/nodes/node_shader_vertex_color.cc | 12 ++++----- .../nodes/shader/nodes/node_shader_volume_info.cc | 16 ++++++------ .../shader/nodes/node_shader_volume_scatter.cc | 27 +++++++++----------- .../nodes/shader/nodes/node_shader_wireframe.cc | 18 +++++--------- 20 files changed, 147 insertions(+), 210 deletions(-) diff --git a/source/blender/nodes/shader/nodes/node_shader_camera.cc b/source/blender/nodes/shader/nodes/node_shader_camera.cc index ab8a98f47fd..b9c624faed9 100644 --- a/source/blender/nodes/shader/nodes/node_shader_camera.cc +++ b/source/blender/nodes/shader/nodes/node_shader_camera.cc @@ -25,13 +25,12 @@ namespace blender::nodes::node_shader_camera_cc { -/* **************** CAMERA INFO ******************** */ -static bNodeSocketTemplate sh_node_camera_out[] = { - {SOCK_VECTOR, N_("View Vector")}, - {SOCK_FLOAT, N_("View Z Depth")}, - {SOCK_FLOAT, N_("View Distance")}, - {-1, ""}, -}; +static void node_declare(NodeDeclarationBuilder &b) +{ + b.add_output(N_("View Vector")); + b.add_output(N_("View Z Depth")); + b.add_output(N_("View Distance")); +} static int gpu_shader_camera(GPUMaterial *mat, bNode *node, @@ -55,7 +54,7 @@ void register_node_type_sh_camera() static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_CAMERA, "Camera Data", NODE_CLASS_INPUT); - node_type_socket_templates(&ntype, nullptr, file_ns::sh_node_camera_out); + ntype.declare = file_ns::node_declare; node_type_gpu(&ntype, file_ns::gpu_shader_camera); nodeRegisterType(&ntype); diff --git a/source/blender/nodes/shader/nodes/node_shader_displacement.cc b/source/blender/nodes/shader/nodes/node_shader_displacement.cc index ef79e6d5c7e..c56218e795a 100644 --- a/source/blender/nodes/shader/nodes/node_shader_displacement.cc +++ b/source/blender/nodes/shader/nodes/node_shader_displacement.cc @@ -21,20 +21,14 @@ namespace blender::nodes::node_shader_displacement_cc { -/* **************** OUTPUT ******************** */ - -static bNodeSocketTemplate sh_node_displacement_in[] = { - {SOCK_FLOAT, N_("Height"), 0.00f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, - {SOCK_FLOAT, N_("Midlevel"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, - {SOCK_FLOAT, N_("Scale"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, - {SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, - {-1, ""}, -}; - -static bNodeSocketTemplate sh_node_displacement_out[] = { - {SOCK_VECTOR, N_("Displacement"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - {-1, ""}, -}; +static void node_declare(NodeDeclarationBuilder &b) +{ + b.add_input(N_("Height")).default_value(0.0f).min(0.0f).max(1000.0f); + b.add_input(N_("Midlevel")).default_value(0.0f).min(0.0f).max(1000.0f); + b.add_input(N_("Scale")).default_value(1.0f).min(0.0f).max(1000.0f); + b.add_input(N_("Normal")).hide_value(); + b.add_output(N_("Displacement")); +} static void node_shader_init_displacement(bNodeTree *UNUSED(ntree), bNode *node) { @@ -80,8 +74,7 @@ void register_node_type_sh_displacement() static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_DISPLACEMENT, "Displacement", NODE_CLASS_OP_VECTOR); - node_type_socket_templates( - &ntype, file_ns::sh_node_displacement_in, file_ns::sh_node_displacement_out); + ntype.declare = file_ns::node_declare; node_type_init(&ntype, file_ns::node_shader_init_displacement); node_type_gpu(&ntype, file_ns::gpu_shader_displacement); diff --git a/source/blender/nodes/shader/nodes/node_shader_gamma.cc b/source/blender/nodes/shader/nodes/node_shader_gamma.cc index b545c0fce5b..98a287b08da 100644 --- a/source/blender/nodes/shader/nodes/node_shader_gamma.cc +++ b/source/blender/nodes/shader/nodes/node_shader_gamma.cc @@ -21,18 +21,16 @@ namespace blender::nodes::node_shader_gamma_cc { -/* **************** Gamma Tools ******************** */ - -static bNodeSocketTemplate sh_node_gamma_in[] = { - {SOCK_RGBA, N_("Color"), 1.0f, 1.0f, 1.0f, 1.0f}, - {SOCK_FLOAT, N_("Gamma"), 1.0f, 0.0f, 0.0f, 0.0f, 0.001f, 10.0f, PROP_UNSIGNED}, - {-1, ""}, -}; - -static bNodeSocketTemplate sh_node_gamma_out[] = { - {SOCK_RGBA, N_("Color")}, - {-1, ""}, -}; +static void node_declare(NodeDeclarationBuilder &b) +{ + b.add_input(N_("Color")).default_value({1.0f, 1.0f, 1.0f, 1.0f}); + b.add_input(N_("Gamma")) + .default_value(1.0f) + .min(0.001f) + .max(10.0f) + .subtype(PROP_UNSIGNED); + b.add_output(N_("Color")); +} static int node_shader_gpu_gamma(GPUMaterial *mat, bNode *node, @@ -52,7 +50,7 @@ void register_node_type_sh_gamma() static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_GAMMA, "Gamma", NODE_CLASS_OP_COLOR); - node_type_socket_templates(&ntype, file_ns::sh_node_gamma_in, file_ns::sh_node_gamma_out); + ntype.declare = file_ns::node_declare; node_type_gpu(&ntype, file_ns::node_shader_gpu_gamma); nodeRegisterType(&ntype); diff --git a/source/blender/nodes/shader/nodes/node_shader_holdout.cc b/source/blender/nodes/shader/nodes/node_shader_holdout.cc index 5a939d0b4f3..4f6f8a639de 100644 --- a/source/blender/nodes/shader/nodes/node_shader_holdout.cc +++ b/source/blender/nodes/shader/nodes/node_shader_holdout.cc @@ -21,16 +21,10 @@ namespace blender::nodes::node_shader_holdout_cc { -/* **************** OUTPUT ******************** */ - -static bNodeSocketTemplate sh_node_holdout_in[] = { - {-1, ""}, -}; - -static bNodeSocketTemplate sh_node_holdout_out[] = { - {SOCK_SHADER, N_("Holdout")}, - {-1, ""}, -}; +static void node_declare(NodeDeclarationBuilder &b) +{ + b.add_output(N_("Holdout")); +} static int gpu_shader_rgb(GPUMaterial *mat, bNode *node, @@ -51,7 +45,7 @@ void register_node_type_sh_holdout() static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_HOLDOUT, "Holdout", NODE_CLASS_SHADER); - node_type_socket_templates(&ntype, file_ns::sh_node_holdout_in, file_ns::sh_node_holdout_out); + ntype.declare = file_ns::node_declare; node_type_gpu(&ntype, file_ns::gpu_shader_rgb); nodeRegisterType(&ntype); diff --git a/source/blender/nodes/shader/nodes/node_shader_mix_shader.cc b/source/blender/nodes/shader/nodes/node_shader_mix_shader.cc index d18ae46fc47..c320fafa2ef 100644 --- a/source/blender/nodes/shader/nodes/node_shader_mix_shader.cc +++ b/source/blender/nodes/shader/nodes/node_shader_mix_shader.cc @@ -21,18 +21,12 @@ namespace blender::nodes::node_shader_mix_shader_cc { -/* **************** OUTPUT ******************** */ - -static bNodeSocketTemplate sh_node_mix_shader_in[] = { - {SOCK_FLOAT, N_("Fac"), 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, - {SOCK_SHADER, N_("Shader")}, - {SOCK_SHADER, N_("Shader")}, - {-1, ""}, -}; - -static bNodeSocketTemplate sh_node_mix_shader_out[] = { - {SOCK_SHADER, N_("Shader")}, - {-1, ""}, +static void node_declare(NodeDeclarationBuilder &b) +{ + b.add_input(N_("Fac")).default_value(0.5f).min(0.0f).max(1.0f).subtype(PROP_FACTOR); + b.add_input(N_("Shader")); + b.add_input(N_("Shader"), "Shader_001"); + b.add_output(N_("Shader")); }; static int node_shader_gpu_mix_shader(GPUMaterial *mat, @@ -54,8 +48,7 @@ void register_node_type_sh_mix_shader() static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_MIX_SHADER, "Mix Shader", NODE_CLASS_SHADER); - node_type_socket_templates( - &ntype, file_ns::sh_node_mix_shader_in, file_ns::sh_node_mix_shader_out); + ntype.declare = file_ns::node_declare; node_type_gpu(&ntype, file_ns::node_shader_gpu_mix_shader); nodeRegisterType(&ntype); diff --git a/source/blender/nodes/shader/nodes/node_shader_object_info.cc b/source/blender/nodes/shader/nodes/node_shader_object_info.cc index bbc4bd0015c..7bc7039d11e 100644 --- a/source/blender/nodes/shader/nodes/node_shader_object_info.cc +++ b/source/blender/nodes/shader/nodes/node_shader_object_info.cc @@ -21,16 +21,14 @@ namespace blender::nodes::node_shader_object_info_cc { -/* **************** OUTPUT ******************** */ - -static bNodeSocketTemplate sh_node_object_info_out[] = { - {SOCK_VECTOR, N_("Location"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - {SOCK_RGBA, N_("Color"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - {SOCK_FLOAT, N_("Object Index"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - {SOCK_FLOAT, N_("Material Index"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - {SOCK_FLOAT, N_("Random"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - {-1, ""}, -}; +static void node_declare(NodeDeclarationBuilder &b) +{ + b.add_output(N_("Location")); + b.add_output(N_("Color")); + b.add_output(N_("Object Index")); + b.add_output(N_("Material Index")); + b.add_output(N_("Random")); +} static int node_shader_gpu_object_info(GPUMaterial *mat, bNode *node, @@ -60,7 +58,7 @@ void register_node_type_sh_object_info() static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_OBJECT_INFO, "Object Info", NODE_CLASS_INPUT); - node_type_socket_templates(&ntype, nullptr, file_ns::sh_node_object_info_out); + ntype.declare = file_ns::node_declare; node_type_gpu(&ntype, file_ns::node_shader_gpu_object_info); nodeRegisterType(&ntype); diff --git a/source/blender/nodes/shader/nodes/node_shader_output_aov.cc b/source/blender/nodes/shader/nodes/node_shader_output_aov.cc index 200ccef7404..58a075e9e05 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_aov.cc +++ b/source/blender/nodes/shader/nodes/node_shader_output_aov.cc @@ -23,12 +23,10 @@ namespace blender::nodes::node_shader_output_aov_cc { -/* **************** OUTPUT ******************** */ - -static bNodeSocketTemplate sh_node_output_aov_in[] = { - {SOCK_RGBA, N_("Color"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, - {SOCK_FLOAT, N_("Value"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - {-1, ""}, +static void node_declare(NodeDeclarationBuilder &b) +{ + b.add_input(N_("Color")).default_value({0.0f, 0.0f, 0.0f, 1.0f}); + b.add_input(N_("Value")).default_value(0.0f).min(0.0f).max(1.0f); }; static void node_shader_init_output_aov(bNodeTree *UNUSED(ntree), bNode *node) @@ -64,7 +62,7 @@ void register_node_type_sh_output_aov() static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_OUTPUT_AOV, "AOV Output", NODE_CLASS_OUTPUT); - node_type_socket_templates(&ntype, file_ns::sh_node_output_aov_in, nullptr); + ntype.declare = file_ns::node_declare; node_type_init(&ntype, file_ns::node_shader_init_output_aov); node_type_storage( &ntype, "NodeShaderOutputAOV", node_free_standard_storage, node_copy_standard_storage); diff --git a/source/blender/nodes/shader/nodes/node_shader_output_light.cc b/source/blender/nodes/shader/nodes/node_shader_output_light.cc index 88006563db2..05eec40e020 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_light.cc +++ b/source/blender/nodes/shader/nodes/node_shader_output_light.cc @@ -21,11 +21,9 @@ namespace blender::nodes::node_shader_output_light_cc { -/* **************** OUTPUT ******************** */ - -static bNodeSocketTemplate sh_node_output_light_in[] = { - {SOCK_SHADER, N_("Surface"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - {-1, ""}, +static void node_declare(NodeDeclarationBuilder &b) +{ + b.add_input(N_("Surface")); }; } // namespace blender::nodes::node_shader_output_light_cc @@ -38,8 +36,7 @@ void register_node_type_sh_output_light() static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_OUTPUT_LIGHT, "Light Output", NODE_CLASS_OUTPUT); - node_type_socket_templates(&ntype, file_ns::sh_node_output_light_in, nullptr); - + ntype.declare = file_ns::node_declare; ntype.no_muting = true; nodeRegisterType(&ntype); diff --git a/source/blender/nodes/shader/nodes/node_shader_output_linestyle.cc b/source/blender/nodes/shader/nodes/node_shader_output_linestyle.cc index ee80962d35a..c866b1e336f 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_linestyle.cc +++ b/source/blender/nodes/shader/nodes/node_shader_output_linestyle.cc @@ -21,14 +21,24 @@ namespace blender::nodes::node_shader_output_linestyle_cc { -/* **************** OUTPUT ******************** */ - -static bNodeSocketTemplate sh_node_output_linestyle_in[] = { - {SOCK_RGBA, N_("Color"), 1.0f, 0.0f, 1.0f, 1.0f}, - {SOCK_FLOAT, N_("Color Fac"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, - {SOCK_FLOAT, N_("Alpha"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, - {SOCK_FLOAT, N_("Alpha Fac"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, - {-1, ""}, +static void node_declare(NodeDeclarationBuilder &b) +{ + b.add_input(N_("Color")).default_value({1.0f, 0.0f, 1.0f, 1.0f}); + b.add_input(N_("Color Fac")) + .default_value(1.0f) + .min(0.0f) + .max(1.0f) + .subtype(PROP_FACTOR); + b.add_input(N_("Alpha")) + .default_value(1.0f) + .min(0.0f) + .max(1.0f) + .subtype(PROP_FACTOR); + b.add_input(N_("Alpha Fac")) + .default_value(1.0f) + .min(0.0f) + .max(1.0f) + .subtype(PROP_FACTOR); }; } // namespace blender::nodes::node_shader_output_linestyle_cc @@ -41,8 +51,7 @@ void register_node_type_sh_output_linestyle() static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_OUTPUT_LINESTYLE, "Line Style Output", NODE_CLASS_OUTPUT); - node_type_socket_templates(&ntype, file_ns::sh_node_output_linestyle_in, nullptr); - + ntype.declare = file_ns::node_declare; ntype.no_muting = true; nodeRegisterType(&ntype); diff --git a/source/blender/nodes/shader/nodes/node_shader_output_material.cc b/source/blender/nodes/shader/nodes/node_shader_output_material.cc index c8bb39ffa04..7d46e8e28fc 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_material.cc +++ b/source/blender/nodes/shader/nodes/node_shader_output_material.cc @@ -23,22 +23,11 @@ namespace blender::nodes::node_shader_output_material_cc { -/* **************** OUTPUT ******************** */ - -static bNodeSocketTemplate sh_node_output_material_in[] = { - {SOCK_SHADER, N_("Surface")}, - {SOCK_SHADER, N_("Volume")}, - {SOCK_VECTOR, - N_("Displacement"), - 0.0f, - 0.0f, - 0.0f, - 0.0f, - 0.0f, - 1.0f, - PROP_NONE, - SOCK_HIDE_VALUE}, - {-1, ""}, +static void node_declare(NodeDeclarationBuilder &b) +{ + b.add_input(N_("Surface")); + b.add_input(N_("Volume")); + b.add_input(N_("Displacement")).hide_value(); }; static int node_shader_gpu_output_material(GPUMaterial *mat, @@ -85,7 +74,7 @@ void register_node_type_sh_output_material() static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_OUTPUT_MATERIAL, "Material Output", NODE_CLASS_OUTPUT); - node_type_socket_templates(&ntype, file_ns::sh_node_output_material_in, nullptr); + ntype.declare = file_ns::node_declare; node_type_gpu(&ntype, file_ns::node_shader_gpu_output_material); ntype.no_muting = true; diff --git a/source/blender/nodes/shader/nodes/node_shader_output_world.cc b/source/blender/nodes/shader/nodes/node_shader_output_world.cc index b2382b08d9a..9ea325bbf78 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_world.cc +++ b/source/blender/nodes/shader/nodes/node_shader_output_world.cc @@ -21,12 +21,10 @@ namespace blender::nodes::node_shader_output_world_cc { -/* **************** OUTPUT ******************** */ - -static bNodeSocketTemplate sh_node_output_world_in[] = { - {SOCK_SHADER, N_("Surface"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - {SOCK_SHADER, N_("Volume"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - {-1, ""}, +static void node_declare(NodeDeclarationBuilder &b) +{ + b.add_input(N_("Surface")); + b.add_input(N_("Volume")); }; static int node_shader_gpu_output_world(GPUMaterial *mat, @@ -53,7 +51,7 @@ void register_node_type_sh_output_world() static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_OUTPUT_WORLD, "World Output", NODE_CLASS_OUTPUT); - node_type_socket_templates(&ntype, file_ns::sh_node_output_world_in, nullptr); + ntype.declare = file_ns::node_declare; node_type_gpu(&ntype, file_ns::node_shader_gpu_output_world); ntype.no_muting = true; diff --git a/source/blender/nodes/shader/nodes/node_shader_shader_to_rgb.cc b/source/blender/nodes/shader/nodes/node_shader_shader_to_rgb.cc index f5e3787ca7c..2e0ba3f1a36 100644 --- a/source/blender/nodes/shader/nodes/node_shader_shader_to_rgb.cc +++ b/source/blender/nodes/shader/nodes/node_shader_shader_to_rgb.cc @@ -21,17 +21,11 @@ namespace blender::nodes::node_shader_shader_to_rgb_cc { -/* **************** OUTPUT ******************** */ - -static bNodeSocketTemplate sh_node_shadertorgb_in[] = { - {SOCK_SHADER, N_("Shader")}, - {-1, ""}, -}; - -static bNodeSocketTemplate sh_node_shadertorgb_out[] = { - {SOCK_RGBA, N_("Color")}, - {SOCK_FLOAT, N_("Alpha")}, - {-1, ""}, +static void node_declare(NodeDeclarationBuilder &b) +{ + b.add_input(N_("Shader")); + b.add_output(N_("Color")); + b.add_output(N_("Alpha")); }; static int node_shader_gpu_shadertorgb(GPUMaterial *mat, @@ -57,8 +51,7 @@ void register_node_type_sh_shadertorgb() static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_SHADERTORGB, "Shader to RGB", NODE_CLASS_CONVERTER); - node_type_socket_templates( - &ntype, file_ns::sh_node_shadertorgb_in, file_ns::sh_node_shadertorgb_out); + ntype.declare = file_ns::node_declare; node_type_gpu(&ntype, file_ns::node_shader_gpu_shadertorgb); nodeRegisterType(&ntype); diff --git a/source/blender/nodes/shader/nodes/node_shader_tangent.cc b/source/blender/nodes/shader/nodes/node_shader_tangent.cc index 9b1c4244604..55eec96ce81 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tangent.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tangent.cc @@ -21,11 +21,9 @@ namespace blender::nodes::node_shader_tangent_cc { -/* **************** OUTPUT ******************** */ - -static bNodeSocketTemplate sh_node_tangent_out[] = { - {SOCK_VECTOR, N_("Tangent"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - {-1, ""}, +static void node_declare(NodeDeclarationBuilder &b) +{ + b.add_output(N_("Tangent")); }; static void node_shader_init_tangent(bNodeTree *UNUSED(ntree), bNode *node) @@ -80,7 +78,7 @@ void register_node_type_sh_tangent() static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_TANGENT, "Tangent", NODE_CLASS_INPUT); - node_type_socket_templates(&ntype, nullptr, file_ns::sh_node_tangent_out); + ntype.declare = file_ns::node_declare; node_type_size_preset(&ntype, NODE_SIZE_MIDDLE); node_type_init(&ntype, file_ns::node_shader_init_tangent); node_type_gpu(&ntype, file_ns::node_shader_gpu_tangent); diff --git a/source/blender/nodes/shader/nodes/node_shader_uv_along_stroke.cc b/source/blender/nodes/shader/nodes/node_shader_uv_along_stroke.cc index 1b9bc60b6ea..18bea5c1ec6 100644 --- a/source/blender/nodes/shader/nodes/node_shader_uv_along_stroke.cc +++ b/source/blender/nodes/shader/nodes/node_shader_uv_along_stroke.cc @@ -21,12 +21,10 @@ namespace blender::nodes::node_shader_uv_along_stroke_cc { -/* **************** OUTPUT ******************** */ - -static bNodeSocketTemplate sh_node_uvalongstroke_out[] = { - {SOCK_VECTOR, N_("UV"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - {-1, ""}, -}; +static void node_declare(NodeDeclarationBuilder &b) +{ + b.add_output(N_("UV")); +} } // namespace blender::nodes::node_shader_uv_along_stroke_cc @@ -38,7 +36,7 @@ void register_node_type_sh_uvalongstroke() static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_UVALONGSTROKE, "UV Along Stroke", NODE_CLASS_INPUT); - node_type_socket_templates(&ntype, nullptr, file_ns::sh_node_uvalongstroke_out); + ntype.declare = file_ns::node_declare; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_uvmap.cc b/source/blender/nodes/shader/nodes/node_shader_uvmap.cc index 9d1e02ee919..70fde996dc3 100644 --- a/source/blender/nodes/shader/nodes/node_shader_uvmap.cc +++ b/source/blender/nodes/shader/nodes/node_shader_uvmap.cc @@ -23,12 +23,10 @@ namespace blender::nodes::node_shader_uvmap_cc { -/* **************** OUTPUT ******************** */ - -static bNodeSocketTemplate sh_node_uvmap_out[] = { - {SOCK_VECTOR, N_("UV"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - {-1, ""}, -}; +static void node_declare(NodeDeclarationBuilder &b) +{ + b.add_output(N_("UV")); +} static void node_shader_init_uvmap(bNodeTree *UNUSED(ntree), bNode *node) { @@ -62,7 +60,7 @@ void register_node_type_sh_uvmap() static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_UVMAP, "UV Map", NODE_CLASS_INPUT); - node_type_socket_templates(&ntype, nullptr, file_ns::sh_node_uvmap_out); + ntype.declare = file_ns::node_declare; node_type_size_preset(&ntype, NODE_SIZE_MIDDLE); node_type_init(&ntype, file_ns::node_shader_init_uvmap); node_type_storage( diff --git a/source/blender/nodes/shader/nodes/node_shader_vector_displacement.cc b/source/blender/nodes/shader/nodes/node_shader_vector_displacement.cc index fbdb7177a93..3486eda1635 100644 --- a/source/blender/nodes/shader/nodes/node_shader_vector_displacement.cc +++ b/source/blender/nodes/shader/nodes/node_shader_vector_displacement.cc @@ -21,19 +21,13 @@ namespace blender::nodes::node_shader_vector_displacement_cc { -/* **************** OUTPUT ******************** */ - -static bNodeSocketTemplate sh_node_vector_displacement_in[] = { - {SOCK_RGBA, N_("Vector"), 0.00f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f, PROP_NONE, SOCK_HIDE_VALUE}, - {SOCK_FLOAT, N_("Midlevel"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, - {SOCK_FLOAT, N_("Scale"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, - {-1, ""}, -}; - -static bNodeSocketTemplate sh_node_vector_displacement_out[] = { - {SOCK_VECTOR, N_("Displacement"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - {-1, ""}, -}; +static void node_declare(NodeDeclarationBuilder &b) +{ + b.add_input(N_("Vector")).hide_value(); + b.add_input(N_("Midlevel")).default_value(0.0f).min(0.0f).max(1000.0f); + b.add_input(N_("Scale")).default_value(1.0f).min(0.0f).max(1000.0f); + b.add_output(N_("Displacement")); +} static void node_shader_init_vector_displacement(bNodeTree *UNUSED(ntree), bNode *node) { @@ -76,8 +70,7 @@ void register_node_type_sh_vector_displacement() sh_node_type_base( &ntype, SH_NODE_VECTOR_DISPLACEMENT, "Vector Displacement", NODE_CLASS_OP_VECTOR); - node_type_socket_templates( - &ntype, file_ns::sh_node_vector_displacement_in, file_ns::sh_node_vector_displacement_out); + ntype.declare = file_ns::node_declare; node_type_init(&ntype, file_ns::node_shader_init_vector_displacement); node_type_gpu(&ntype, file_ns::gpu_shader_vector_displacement); diff --git a/source/blender/nodes/shader/nodes/node_shader_vertex_color.cc b/source/blender/nodes/shader/nodes/node_shader_vertex_color.cc index 849d2bf58bb..0d3f047f54e 100644 --- a/source/blender/nodes/shader/nodes/node_shader_vertex_color.cc +++ b/source/blender/nodes/shader/nodes/node_shader_vertex_color.cc @@ -21,11 +21,11 @@ namespace blender::nodes::node_shader_vertex_color_cc { -static bNodeSocketTemplate sh_node_vertex_color_out[] = { - {SOCK_RGBA, N_("Color")}, - {SOCK_FLOAT, N_("Alpha")}, - {-1, ""}, -}; +static void node_declare(NodeDeclarationBuilder &b) +{ + b.add_output(N_("Color")); + b.add_output(N_("Alpha")); +} static void node_shader_init_vertex_color(bNodeTree *UNUSED(ntree), bNode *node) { @@ -57,7 +57,7 @@ void register_node_type_sh_vertex_color() static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_VERTEX_COLOR, "Vertex Color", NODE_CLASS_INPUT); - node_type_socket_templates(&ntype, nullptr, file_ns::sh_node_vertex_color_out); + ntype.declare = file_ns::node_declare; node_type_init(&ntype, file_ns::node_shader_init_vertex_color); node_type_storage( &ntype, "NodeShaderVertexColor", node_free_standard_storage, node_copy_standard_storage); diff --git a/source/blender/nodes/shader/nodes/node_shader_volume_info.cc b/source/blender/nodes/shader/nodes/node_shader_volume_info.cc index 53458ed962c..6a973cdbad7 100644 --- a/source/blender/nodes/shader/nodes/node_shader_volume_info.cc +++ b/source/blender/nodes/shader/nodes/node_shader_volume_info.cc @@ -21,13 +21,13 @@ namespace blender::nodes::node_shader_volume_info_cc { -static bNodeSocketTemplate sh_node_volume_info_out[] = { - {SOCK_RGBA, N_("Color")}, - {SOCK_FLOAT, N_("Density")}, - {SOCK_FLOAT, N_("Flame")}, - {SOCK_FLOAT, N_("Temperature")}, - {-1, ""}, -}; +static void node_declare(NodeDeclarationBuilder &b) +{ + b.add_output(N_("Color")); + b.add_output(N_("Density")); + b.add_output(N_("Flame")); + b.add_output(N_("Temperature")); +} static int node_shader_gpu_volume_info(GPUMaterial *mat, bNode *UNUSED(node), @@ -60,7 +60,7 @@ void register_node_type_sh_volume_info() static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_VOLUME_INFO, "Volume Info", NODE_CLASS_INPUT); - node_type_socket_templates(&ntype, nullptr, file_ns::sh_node_volume_info_out); + ntype.declare = file_ns::node_declare; node_type_gpu(&ntype, file_ns::node_shader_gpu_volume_info); nodeRegisterType(&ntype); diff --git a/source/blender/nodes/shader/nodes/node_shader_volume_scatter.cc b/source/blender/nodes/shader/nodes/node_shader_volume_scatter.cc index e07087e8529..abd10cfcbcf 100644 --- a/source/blender/nodes/shader/nodes/node_shader_volume_scatter.cc +++ b/source/blender/nodes/shader/nodes/node_shader_volume_scatter.cc @@ -21,19 +21,17 @@ namespace blender::nodes::node_shader_volume_scatter_cc { -/* **************** OUTPUT ******************** */ - -static bNodeSocketTemplate sh_node_volume_scatter_in[] = { - {SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {SOCK_FLOAT, N_("Density"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, - {SOCK_FLOAT, N_("Anisotropy"), 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, PROP_FACTOR}, - {-1, ""}, -}; - -static bNodeSocketTemplate sh_node_volume_scatter_out[] = { - {SOCK_SHADER, N_("Volume")}, - {-1, ""}, -}; +static void node_declare(NodeDeclarationBuilder &b) +{ + b.add_input(N_("Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f}); + b.add_input(N_("Density")).default_value(1.0f).min(0.0f).max(1000.0f); + b.add_input(N_("Anisotropy")) + .default_value(0.0f) + .min(-1.0f) + .max(1.0f) + .subtype(PROP_FACTOR); + b.add_output(N_("Volume")); +} static int node_shader_gpu_volume_scatter(GPUMaterial *mat, bNode *node, @@ -54,8 +52,7 @@ void register_node_type_sh_volume_scatter() static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_VOLUME_SCATTER, "Volume Scatter", NODE_CLASS_SHADER); - node_type_socket_templates( - &ntype, file_ns::sh_node_volume_scatter_in, file_ns::sh_node_volume_scatter_out); + ntype.declare = file_ns::node_declare; node_type_gpu(&ntype, file_ns::node_shader_gpu_volume_scatter); nodeRegisterType(&ntype); diff --git a/source/blender/nodes/shader/nodes/node_shader_wireframe.cc b/source/blender/nodes/shader/nodes/node_shader_wireframe.cc index 1b38dd795cb..a23887e9721 100644 --- a/source/blender/nodes/shader/nodes/node_shader_wireframe.cc +++ b/source/blender/nodes/shader/nodes/node_shader_wireframe.cc @@ -21,16 +21,11 @@ namespace blender::nodes::node_shader_wireframe_cc { -/* **************** Wireframe ******************** */ -static bNodeSocketTemplate sh_node_wireframe_in[] = { - {SOCK_FLOAT, N_("Size"), 0.01f, 0.0f, 0.0f, 0.0f, 0.0f, 100.0f}, - {-1, ""}, -}; - -static bNodeSocketTemplate sh_node_wireframe_out[] = { - {SOCK_FLOAT, N_("Fac"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, - {-1, ""}, -}; +static void node_declare(NodeDeclarationBuilder &b) +{ + b.add_input(N_("Size")).default_value(0.01f).min(0.0f).max(100.0f); + b.add_output(N_("Fac")); +} static int node_shader_gpu_wireframe(GPUMaterial *mat, bNode *node, @@ -64,8 +59,7 @@ void register_node_type_sh_wireframe() static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_WIREFRAME, "Wireframe", NODE_CLASS_INPUT); - node_type_socket_templates( - &ntype, file_ns::sh_node_wireframe_in, file_ns::sh_node_wireframe_out); + ntype.declare = file_ns::node_declare; node_type_gpu(&ntype, file_ns::node_shader_gpu_wireframe); nodeRegisterType(&ntype); -- cgit v1.2.3