Commit: 0cd3d462466c0b746611d1e552109de3a3632467 Author: Charlie Jolly Date: Thu Oct 7 15:04:20 2021 +0100 Branches: master https://developer.blender.org/rB0cd3d462466c0b746611d1e552109de3a3632467
Nodes: Move texture nodes to C++ Move texture nodes to C++ and use new socket declaration Brick, Checker, Image, Magic and Wave Differential Revision: https://developer.blender.org/D12778 =================================================================== M source/blender/nodes/CMakeLists.txt R058 source/blender/nodes/shader/nodes/node_shader_tex_brick.c source/blender/nodes/shader/nodes/node_shader_tex_brick.cc R067 source/blender/nodes/shader/nodes/node_shader_tex_checker.c source/blender/nodes/shader/nodes/node_shader_tex_checker.cc R088 source/blender/nodes/shader/nodes/node_shader_tex_image.c source/blender/nodes/shader/nodes/node_shader_tex_image.cc R071 source/blender/nodes/shader/nodes/node_shader_tex_magic.c source/blender/nodes/shader/nodes/node_shader_tex_magic.cc R070 source/blender/nodes/shader/nodes/node_shader_tex_wave.c source/blender/nodes/shader/nodes/node_shader_tex_wave.cc =================================================================== diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt index dab7579d946..a4350c10087 100644 --- a/source/blender/nodes/CMakeLists.txt +++ b/source/blender/nodes/CMakeLists.txt @@ -319,19 +319,19 @@ set(SRC shader/nodes/node_shader_squeeze.c shader/nodes/node_shader_subsurface_scattering.c shader/nodes/node_shader_tangent.c - shader/nodes/node_shader_tex_brick.c - shader/nodes/node_shader_tex_checker.c + shader/nodes/node_shader_tex_brick.cc + shader/nodes/node_shader_tex_checker.cc shader/nodes/node_shader_tex_coord.c shader/nodes/node_shader_tex_environment.c shader/nodes/node_shader_tex_gradient.cc - shader/nodes/node_shader_tex_image.c - shader/nodes/node_shader_tex_magic.c + shader/nodes/node_shader_tex_image.cc + shader/nodes/node_shader_tex_magic.cc shader/nodes/node_shader_tex_musgrave.cc shader/nodes/node_shader_tex_noise.cc shader/nodes/node_shader_tex_pointdensity.c shader/nodes/node_shader_tex_sky.c shader/nodes/node_shader_tex_voronoi.cc - shader/nodes/node_shader_tex_wave.c + shader/nodes/node_shader_tex_wave.cc shader/nodes/node_shader_tex_white_noise.cc shader/nodes/node_shader_uvAlongStroke.c shader/nodes/node_shader_uvmap.c diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_brick.c b/source/blender/nodes/shader/nodes/node_shader_tex_brick.cc similarity index 58% rename from source/blender/nodes/shader/nodes/node_shader_tex_brick.c rename to source/blender/nodes/shader/nodes/node_shader_tex_brick.cc index 1b802f1dfd7..e90dae60189 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_brick.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_brick.cc @@ -19,112 +19,46 @@ #include "../node_shader_util.h" -/* **************** OUTPUT ******************** */ +namespace blender::nodes { -static bNodeSocketTemplate sh_node_tex_brick_in[] = { - {SOCK_VECTOR, - N_("Vector"), - 0.0f, - 0.0f, - 0.0f, - 0.0f, - 0.0f, - 1.0f, - PROP_NONE, - SOCK_HIDE_VALUE | SOCK_NO_INTERNAL_LINK}, - {SOCK_RGBA, N_("Color1"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {SOCK_RGBA, N_("Color2"), 0.2f, 0.2f, 0.2f, 1.0f, 0.0f, 1.0f}, - {SOCK_RGBA, - N_("Mortar"), - 0.0f, - 0.0f, - 0.0f, - 1.0f, - 0.0f, - 1.0f, - PROP_NONE, - SOCK_NO_INTERNAL_LINK}, - {SOCK_FLOAT, - N_("Scale"), - 5.0f, - 0.0f, - 0.0f, - 0.0f, - -1000.0f, - 1000.0f, - PROP_NONE, - SOCK_NO_INTERNAL_LINK}, - {SOCK_FLOAT, - N_("Mortar Size"), - 0.02f, - 0.0f, - 0.0f, - 0.0f, - 0.0f, - 0.125f, - PROP_NONE, - SOCK_NO_INTERNAL_LINK}, - {SOCK_FLOAT, - N_("Mortar Smooth"), - 0.0f, - 0.0f, - 0.0f, - 0.0f, - 0.0f, - 1.0f, - PROP_NONE, - SOCK_NO_INTERNAL_LINK}, - {SOCK_FLOAT, - N_("Bias"), - 0.0f, - 0.0f, - 0.0f, - 0.0f, - -1.0f, - 1.0f, - PROP_NONE, - SOCK_NO_INTERNAL_LINK}, - {SOCK_FLOAT, - N_("Brick Width"), - 0.5f, - 0.0f, - 0.0f, - 0.0f, - 0.01f, - 100.0f, - PROP_NONE, - SOCK_NO_INTERNAL_LINK}, - {SOCK_FLOAT, - N_("Row Height"), - 0.25f, - 0.0f, - 0.0f, - 0.0f, - 0.01f, - 100.0f, - PROP_NONE, - SOCK_NO_INTERNAL_LINK}, - {-1, ""}, +static void sh_node_tex_brick_declare(NodeDeclarationBuilder &b) +{ + b.is_function_node(); + b.add_input<decl::Vector>("Vector").min(-10000.0f).max(10000.0f).implicit_field(); + b.add_input<decl::Color>("Color1").default_value({0.8f, 0.8f, 0.8f, 1.0f}); + b.add_input<decl::Color>("Color2").default_value({0.2f, 0.2f, 0.2f, 1.0f}); + b.add_input<decl::Color>("Mortar").default_value({0.0f, 0.0f, 0.0f, 1.0f}).no_muted_links(); + b.add_input<decl::Float>("Scale") + .min(-1000.0f) + .max(1000.0f) + .default_value(5.0f) + .no_muted_links(); + b.add_input<decl::Float>("Mortar Size") + .min(0.0f) + .max(0.125f) + .default_value(0.02f) + .no_muted_links(); + b.add_input<decl::Float>("Mortar Smooth").min(0.0f).max(1.0f).no_muted_links(); + b.add_input<decl::Float>("Bias").min(-1.0f).max(1.0f).no_muted_links(); + b.add_input<decl::Float>("Brick Width") + .min(0.01f) + .max(100.0f) + .default_value(0.5f) + .no_muted_links(); + b.add_input<decl::Float>("Row Height") + .min(0.01f) + .max(100.0f) + .default_value(0.25f) + .no_muted_links(); + b.add_output<decl::Color>("Color"); + b.add_output<decl::Float>("Fac"); }; -static bNodeSocketTemplate sh_node_tex_brick_out[] = { - {SOCK_RGBA, N_("Color"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - {SOCK_FLOAT, - N_("Fac"), - 0.0f, - 0.0f, - 0.0f, - 0.0f, - 0.0f, - 1.0f, - PROP_FACTOR, - SOCK_NO_INTERNAL_LINK}, - {-1, ""}, -}; +} // namespace blender::nodes static void node_shader_init_tex_brick(bNodeTree *UNUSED(ntree), bNode *node) { - NodeTexBrick *tex = MEM_callocN(sizeof(NodeTexBrick), "NodeTexBrick"); + NodeTexBrick *tex = (NodeTexBrick *)MEM_callocN(sizeof(NodeTexBrick), "NodeTexBrick"); BKE_texture_mapping_default(&tex->base.tex_mapping, TEXMAP_TYPE_POINT); BKE_texture_colormapping_default(&tex->base.color_mapping); @@ -170,7 +104,7 @@ void register_node_type_sh_tex_brick(void) static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_TEX_BRICK, "Brick Texture", NODE_CLASS_TEXTURE, 0); - node_type_socket_templates(&ntype, sh_node_tex_brick_in, sh_node_tex_brick_out); + ntype.declare = blender::nodes::sh_node_tex_brick_declare; node_type_size_preset(&ntype, NODE_SIZE_MIDDLE); node_type_init(&ntype, node_shader_init_tex_brick); node_type_storage( diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_checker.c b/source/blender/nodes/shader/nodes/node_shader_tex_checker.cc similarity index 67% rename from source/blender/nodes/shader/nodes/node_shader_tex_checker.c rename to source/blender/nodes/shader/nodes/node_shader_tex_checker.cc index 75219f4c3f9..26abc66fc3d 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_checker.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_checker.cc @@ -19,43 +19,28 @@ #include "../node_shader_util.h" -/* **************** OUTPUT ******************** */ +namespace blender::nodes { -static bNodeSocketTemplate sh_node_tex_checker_in[] = { - {SOCK_VECTOR, N_("Vector"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, - {SOCK_RGBA, N_("Color1"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {SOCK_RGBA, N_("Color2"), 0.2f, 0.2f, 0.2f, 1.0f, 0.0f, 1.0f}, - {SOCK_FLOAT, - N_("Scale"), - 5.0f, - 0.0f, - 0.0f, - 0.0f, - -1000.0f, - 1000.0f, - PROP_NONE, - SOCK_NO_INTERNAL_LINK}, - {-1, ""}, +static void sh_node_tex_checker_declare(NodeDeclarationBuilder &b) +{ + b.is_function_node(); + b.add_input<decl::Vector>("Vector").min(-10000.0f).max(10000.0f).implicit_field(); + b.add_input<decl::Color>("Color1").default_value({0.8f, 0.8f, 0.8f, 1.0f}); + b.add_input<decl::Color>("Color2").default_value({0.2f, 0.2f, 0.2f, 1.0f}); + b.add_input<decl::Float>("Scale") + .min(-10000.0f) + .max(10000.0f) + .default_value(5.0f) + .no_muted_links(); + b.add_output<decl::Color>("Color"); + b.add_output<decl::Float>("Fac"); }; -static bNodeSocketTemplate sh_node_tex_checker_out[] = { - {SOCK_RGBA, N_("Color"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - {SOCK_FLOAT, - N_("Fac"), - 0.0f, - 0.0f, - 0.0f, - 0.0f, - 0.0f, - 1.0f, - PROP_FACTOR, - SOCK_NO_INTERNAL_LINK}, - {-1, ""}, -}; +} // namespace blender::nodes static void node_shader_init_tex_checker(bNodeTree *UNUSED(ntree), bNode *node) { - NodeTexChecker *tex = MEM_callocN(sizeof(NodeTexChecker), "NodeTexChecker"); + NodeTexChecker *tex = (NodeTexChecker *)MEM_callocN(sizeof(NodeTexChecker), "NodeTexChecker"); BKE_texture_mapping_default(&tex->base.tex_mapping, TEXMAP_TYPE_POINT); BKE_texture_colormapping_default(&tex->base.color_mapping); @@ -80,7 +65,7 @@ void register_node_type_sh_tex_checker(void) static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_TEX_CHECKER, "Checker Texture", NODE_CLASS_TEXTURE, 0); - node_type_socket_templates(&ntype, sh_node_tex_checker_in, sh_node_tex_checker_out); + ntype.declare = blender::nodes::sh_node_tex_checker_declare; node_type_init(&ntype, node_shader_init_tex_checker); node_type_storage( &ntype, "NodeTexChecker", node_free_standard_storage, node_copy_standard_storage); diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_image.c b/source/blender/nodes/shader/nodes/node_shader_tex_image.cc similarity index 88% rename from source/blender/nodes/shader/nodes/node_shader_tex_image.c rename to source/blender/nodes/shader/nodes/node_shader_tex_image.cc index 09d06c35a5f..df1051c07b4 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_image.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_image.cc @@ -19,31 +19,21 @@ #include "../node_shader_util.h" -/* **************** OUTPUT ******************** */ +namespace blender::nodes { -static bNodeSocketTemplate sh_node_tex_image_in[] = { - {SOCK_VECTOR, N_("Vector"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, - {-1, ""}, +static void sh_node_tex_image_declare(NodeDeclarationBuilder &b) +{ + b.is_function_node(); + b.add_input<decl::Vector>("Vector").implicit_field(); + b.add_output<decl::Color>("Color").no_muted_links(); + b.add_output<decl::Float>("Alpha").no_muted_links(); }; -static bNodeSocketTemplate sh_node_tex_image_out[] = { - {SOCK_RGBA, N_("Color"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_NO_INTERNAL_LINK}, - {SOCK_FLOAT, - N_("Alpha"), - 0.0f, - 0.0f, - 0.0f, - 0.0f, - 0.0f, - 1.0f, - PROP_NONE, - SOCK_NO_INTERNAL_LINK}, - {-1, ""}, -}; +}; // namespace blender::nodes static void node_shader_init_tex_image(bNodeTree *UNUSED(ntree), bNode *node) { - NodeTexImage *tex = MEM_callocN(sizeof(NodeTexImage), "NodeTexImage"); + NodeTexImage *tex = (NodeTexImage *)MEM_callocN( @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list [email protected] List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs
