From c240ab70aef001ec2aca0fd2aae7feb5d55892a5 Mon Sep 17 00:00:00 2001 From: Aaron Carlisle Date: Wed, 5 Jan 2022 16:27:08 -0500 Subject: Cleanup: Use new socket builder API Instead of looping through the old socket template array looper through the node output listbase. --- .../nodes/shader/nodes/node_shader_geometry.cc | 32 ++++++++++------------ 1 file changed, 15 insertions(+), 17 deletions(-) (limited to 'source/blender') 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(N_("Position")); + b.add_output(N_("Normal")); + b.add_output(N_("Tangent")); + b.add_output(N_("True Normal")); + b.add_output(N_("Incoming")); + b.add_output(N_("Parametric")); + b.add_output(N_("Backfacing")); + b.add_output(N_("Pointiness")); + b.add_output(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); -- cgit v1.2.3