Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Carlisle <carlisle.b3d@gmail.com>2022-01-05 23:46:43 +0300
committerAaron Carlisle <carlisle.b3d@gmail.com>2022-01-05 23:47:15 +0300
commit611da3b7d6d62861f9a5e62d68a43cd560e8838c (patch)
tree9b3c970864403b1fc1cf5b02522b727ac9bd6999
parent50f694c7def8bae73d33cb3c5e0fed3ad066820e (diff)
Cleanup: Use new socket builder API
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_camera.cc15
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_displacement.cc25
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_gamma.cc24
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_holdout.cc16
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_mix_shader.cc21
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_object_info.cc20
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_output_aov.cc12
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_output_light.cc11
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_output_linestyle.cc29
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_output_material.cc23
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_output_world.cc12
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_shader_to_rgb.cc19
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_tangent.cc10
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_uv_along_stroke.cc12
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_uvmap.cc12
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_vector_displacement.cc23
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_vertex_color.cc12
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_volume_info.cc16
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_volume_scatter.cc27
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_wireframe.cc18
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<decl::Vector>(N_("View Vector"));
+ b.add_output<decl::Float>(N_("View Z Depth"));
+ b.add_output<decl::Float>(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<decl::Float>(N_("Height")).default_value(0.0f).min(0.0f).max(1000.0f);
+ b.add_input<decl::Float>(N_("Midlevel")).default_value(0.0f).min(0.0f).max(1000.0f);
+ b.add_input<decl::Float>(N_("Scale")).default_value(1.0f).min(0.0f).max(1000.0f);
+ b.add_input<decl::Vector>(N_("Normal")).hide_value();
+ b.add_output<decl::Vector>(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<decl::Color>(N_("Color")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
+ b.add_input<decl::Float>(N_("Gamma"))
+ .default_value(1.0f)
+ .min(0.001f)
+ .max(10.0f)
+ .subtype(PROP_UNSIGNED);
+ b.add_output<decl::Color>(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<decl::Shader>(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<decl::Float>(N_("Fac")).default_value(0.5f).min(0.0f).max(1.0f).subtype(PROP_FACTOR);
+ b.add_input<decl::Shader>(N_("Shader"));
+ b.add_input<decl::Shader>(N_("Shader"), "Shader_001");
+ b.add_output<decl::Shader>(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<decl::Vector>(N_("Location"));
+ b.add_output<decl::Color>(N_("Color"));
+ b.add_output<decl::Float>(N_("Object Index"));
+ b.add_output<decl::Float>(N_("Material Index"));
+ b.add_output<decl::Float>(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<decl::Color>(N_("Color")).default_value({0.0f, 0.0f, 0.0f, 1.0f});
+ b.add_input<decl::Float>(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<decl::Shader>(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<decl::Color>(N_("Color")).default_value({1.0f, 0.0f, 1.0f, 1.0f});
+ b.add_input<decl::Float>(N_("Color Fac"))
+ .default_value(1.0f)
+ .min(0.0f)
+ .max(1.0f)
+ .subtype(PROP_FACTOR);
+ b.add_input<decl::Float>(N_("Alpha"))
+ .default_value(1.0f)
+ .min(0.0f)
+ .max(1.0f)
+ .subtype(PROP_FACTOR);
+ b.add_input<decl::Float>(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<decl::Shader>(N_("Surface"));
+ b.add_input<decl::Shader>(N_("Volume"));
+ b.add_input<decl::Vector>(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<decl::Shader>(N_("Surface"));
+ b.add_input<decl::Shader>(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<decl::Shader>(N_("Shader"));
+ b.add_output<decl::Color>(N_("Color"));
+ b.add_output<decl::Float>(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<decl::Vector>(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<decl::Vector>(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<decl::Vector>(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<decl::Color>(N_("Vector")).hide_value();
+ b.add_input<decl::Float>(N_("Midlevel")).default_value(0.0f).min(0.0f).max(1000.0f);
+ b.add_input<decl::Float>(N_("Scale")).default_value(1.0f).min(0.0f).max(1000.0f);
+ b.add_output<decl::Vector>(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<decl::Color>(N_("Color"));
+ b.add_output<decl::Float>(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<decl::Color>(N_("Color"));
+ b.add_output<decl::Float>(N_("Density"));
+ b.add_output<decl::Float>(N_("Flame"));
+ b.add_output<decl::Float>(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<decl::Color>(N_("Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f});
+ b.add_input<decl::Float>(N_("Density")).default_value(1.0f).min(0.0f).max(1000.0f);
+ b.add_input<decl::Float>(N_("Anisotropy"))
+ .default_value(0.0f)
+ .min(-1.0f)
+ .max(1.0f)
+ .subtype(PROP_FACTOR);
+ b.add_output<decl::Shader>(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<decl::Float>(N_("Size")).default_value(0.01f).min(0.0f).max(100.0f);
+ b.add_output<decl::Float>(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);