[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