[Bf-blender-cvs] [0cd3d462466] master: Nodes: Move texture nodes to C++

Charlie Jolly noreply at git.blender.org
Thu Oct 7 20:20:25 CEST 2021


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. @@



More information about the Bf-blender-cvs mailing list