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-06 00:27:08 +0300
committerAaron Carlisle <carlisle.b3d@gmail.com>2022-01-06 00:27:29 +0300
commitc240ab70aef001ec2aca0fd2aae7feb5d55892a5 (patch)
tree7f4fc25c8e6ecedffa806c0e3e8ca07e594bed49 /source/blender
parent7c013f1154e69094d911cdd6f756e832e4bb84fe (diff)
Cleanup: Use new socket builder API
Instead of looping through the old socket template array looper through the node output listbase.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_geometry.cc32
1 files changed, 15 insertions, 17 deletions
diff --git a/source/blender/nodes/shader/nodes/node_shader_geometry.cc b/source/blender/nodes/shader/nodes/node_shader_geometry.cc
index 175be15c6e3..2a5868333a9 100644
--- a/source/blender/nodes/shader/nodes/node_shader_geometry.cc
+++ b/source/blender/nodes/shader/nodes/node_shader_geometry.cc
@@ -21,20 +21,18 @@
namespace blender::nodes::node_shader_geometry_cc {
-/* **************** OUTPUT ******************** */
-
-static bNodeSocketTemplate sh_node_geometry_out[] = {
- {SOCK_VECTOR, N_("Position"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
- {SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
- {SOCK_VECTOR, N_("Tangent"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
- {SOCK_VECTOR, N_("True Normal"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
- {SOCK_VECTOR, N_("Incoming"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
- {SOCK_VECTOR, N_("Parametric"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
- {SOCK_FLOAT, N_("Backfacing"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
- {SOCK_FLOAT, N_("Pointiness"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
- {SOCK_FLOAT, N_("Random Per Island"), 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_("Position"));
+ b.add_output<decl::Vector>(N_("Normal"));
+ b.add_output<decl::Vector>(N_("Tangent"));
+ b.add_output<decl::Vector>(N_("True Normal"));
+ b.add_output<decl::Vector>(N_("Incoming"));
+ b.add_output<decl::Vector>(N_("Parametric"));
+ b.add_output<decl::Float>(N_("Backfacing"));
+ b.add_output<decl::Float>(N_("Pointiness"));
+ b.add_output<decl::Float>(N_("Random Per Island"));
+}
static int node_shader_gpu_geometry(GPUMaterial *mat,
bNode *node,
@@ -66,8 +64,8 @@ static int node_shader_gpu_geometry(GPUMaterial *mat,
GPU_builtin(GPU_INVERSE_VIEW_MATRIX),
bary_link);
- /* for each output */
- for (int i = 0; sh_node_geometry_out[i].type != -1; i++) {
+ int i;
+ LISTBASE_FOREACH_INDEX (bNodeSocket *, sock, &node->outputs, i) {
node_shader_gpu_bump_tex_coord(mat, node, &out[i].link);
/* Normalize some vectors after dFdx/dFdy offsets.
* This is the case for interpolated, non linear functions.
@@ -98,7 +96,7 @@ void register_node_type_sh_geometry()
static bNodeType ntype;
sh_node_type_base(&ntype, SH_NODE_NEW_GEOMETRY, "Geometry", NODE_CLASS_INPUT);
- node_type_socket_templates(&ntype, nullptr, file_ns::sh_node_geometry_out);
+ ntype.declare = file_ns::node_declare;
node_type_gpu(&ntype, file_ns::node_shader_gpu_geometry);
nodeRegisterType(&ntype);