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:
authorCharlie Jolly <mistajolly@gmail.com>2021-10-07 17:04:20 +0300
committerCharlie Jolly <mistajolly@gmail.com>2021-10-07 21:19:20 +0300
commit0cd3d462466c0b746611d1e552109de3a3632467 (patch)
treed9e35c0c0ec56bc7bb7e0d6288fd2339f2b48409
parentba4e5399fc85e318c41380b0b1c81b23a8334786 (diff)
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
-rw-r--r--source/blender/nodes/CMakeLists.txt10
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_tex_brick.cc (renamed from source/blender/nodes/shader/nodes/node_shader_tex_brick.c)136
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_tex_checker.cc (renamed from source/blender/nodes/shader/nodes/node_shader_tex_checker.c)49
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_tex_image.cc (renamed from source/blender/nodes/shader/nodes/node_shader_tex_image.c)38
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_tex_magic.cc (renamed from source/blender/nodes/shader/nodes/node_shader_tex_magic.c)34
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_tex_wave.cc (renamed from source/blender/nodes/shader/nodes/node_shader_tex_wave.c)46
6 files changed, 103 insertions, 210 deletions
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
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
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
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(sizeof(NodeTexImage), "NodeTexImage");
BKE_texture_mapping_default(&tex->base.tex_mapping, TEXMAP_TYPE_POINT);
BKE_texture_colormapping_default(&tex->base.color_mapping);
BKE_imageuser_default(&tex->iuser);
@@ -58,12 +48,12 @@ static int node_shader_gpu_tex_image(GPUMaterial *mat,
GPUNodeStack *out)
{
Image *ima = (Image *)node->id;
- NodeTexImage *tex = node->storage;
+ NodeTexImage *tex = (NodeTexImage *)node->storage;
/* We get the image user from the original node, since GPU image keeps
* a pointer to it and the dependency refreshes the original. */
bNode *node_original = node->original ? node->original : node;
- NodeTexImage *tex_original = node_original->storage;
+ NodeTexImage *tex_original = (NodeTexImage *)node_original->storage;
ImageUser *iuser = &tex_original->iuser;
if (!ima) {
@@ -78,7 +68,7 @@ static int node_shader_gpu_tex_image(GPUMaterial *mat,
node_shader_gpu_tex_mapping(mat, node, in, out);
- eGPUSamplerState sampler_state = 0;
+ eGPUSamplerState sampler_state = GPU_SAMPLER_DEFAULT;
switch (tex->extension) {
case SHD_IMAGE_EXTENSION_REPEAT:
@@ -94,7 +84,7 @@ static int node_shader_gpu_tex_image(GPUMaterial *mat,
if (tex->interpolation != SHD_INTERP_CLOSEST) {
sampler_state |= GPU_SAMPLER_ANISO | GPU_SAMPLER_FILTER;
/* TODO(fclem): For now assume mipmap is always enabled. */
- sampler_state |= true ? GPU_SAMPLER_MIPMAP : 0;
+ sampler_state |= GPU_SAMPLER_MIPMAP;
}
const bool use_cubic = ELEM(tex->interpolation, SHD_INTERP_CUBIC, SHD_INTERP_SMART);
@@ -189,7 +179,7 @@ void register_node_type_sh_tex_image(void)
static bNodeType ntype;
sh_node_type_base(&ntype, SH_NODE_TEX_IMAGE, "Image Texture", NODE_CLASS_TEXTURE, 0);
- node_type_socket_templates(&ntype, sh_node_tex_image_in, sh_node_tex_image_out);
+ ntype.declare = blender::nodes::sh_node_tex_image_declare;
node_type_init(&ntype, node_shader_init_tex_image);
node_type_storage(
&ntype, "NodeTexImage", node_free_standard_storage, node_copy_standard_storage);
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_magic.c b/source/blender/nodes/shader/nodes/node_shader_tex_magic.cc
index 51721f8bb09..0bd15005816 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_magic.c
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_magic.cc
@@ -19,33 +19,23 @@
#include "../node_shader_util.h"
-/* **************** OUTPUT ******************** */
+namespace blender::nodes {
-static bNodeSocketTemplate sh_node_tex_magic_in[] = {
- {SOCK_VECTOR, N_("Vector"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE},
- {SOCK_FLOAT, N_("Scale"), 5.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f},
- {SOCK_FLOAT, N_("Distortion"), 1.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f},
- {-1, ""},
+static void sh_node_tex_magic_declare(NodeDeclarationBuilder &b)
+{
+ b.is_function_node();
+ b.add_input<decl::Vector>("Vector").implicit_field();
+ b.add_input<decl::Float>("Scale").min(-1000.0f).max(1000.0f).default_value(5.0f);
+ b.add_input<decl::Float>("Distortion").min(-1000.0f).max(1000.0f).default_value(1.0f);
+ b.add_output<decl::Color>("Color").no_muted_links();
+ b.add_output<decl::Float>("Fac").no_muted_links();
};
-static bNodeSocketTemplate sh_node_tex_magic_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_("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_magic(bNodeTree *UNUSED(ntree), bNode *node)
{
- NodeTexMagic *tex = MEM_callocN(sizeof(NodeTexMagic), "NodeTexMagic");
+ NodeTexMagic *tex = (NodeTexMagic *)MEM_callocN(sizeof(NodeTexMagic), "NodeTexMagic");
BKE_texture_mapping_default(&tex->base.tex_mapping, TEXMAP_TYPE_POINT);
BKE_texture_colormapping_default(&tex->base.color_mapping);
tex->depth = 2;
@@ -74,7 +64,7 @@ void register_node_type_sh_tex_magic(void)
static bNodeType ntype;
sh_node_type_base(&ntype, SH_NODE_TEX_MAGIC, "Magic Texture", NODE_CLASS_TEXTURE, 0);
- node_type_socket_templates(&ntype, sh_node_tex_magic_in, sh_node_tex_magic_out);
+ ntype.declare = blender::nodes::sh_node_tex_magic_declare;
node_type_init(&ntype, node_shader_init_tex_magic);
node_type_storage(
&ntype, "NodeTexMagic", node_free_standard_storage, node_copy_standard_storage);
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_wave.c b/source/blender/nodes/shader/nodes/node_shader_tex_wave.cc
index bba568ed5b7..79fec5f6e0e 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_wave.c
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_wave.cc
@@ -19,37 +19,31 @@
#include "../node_shader_util.h"
-/* **************** WAVE ******************** */
+namespace blender::nodes {
-static bNodeSocketTemplate sh_node_tex_wave_in[] = {
- {SOCK_VECTOR, N_("Vector"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE},
- {SOCK_FLOAT, N_("Scale"), 5.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f},
- {SOCK_FLOAT, N_("Distortion"), 0.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f},
- {SOCK_FLOAT, N_("Detail"), 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 16.0f},
- {SOCK_FLOAT, N_("Detail Scale"), 1.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f},
- {SOCK_FLOAT, N_("Detail Roughness"), 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
- {SOCK_FLOAT, N_("Phase Offset"), 0.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f},
- {-1, ""},
+static void sh_node_tex_wave_declare(NodeDeclarationBuilder &b)
+{
+ b.is_function_node();
+ b.add_input<decl::Vector>("Vector").implicit_field();
+ b.add_input<decl::Float>("Scale").min(-1000.0f).max(1000.0f).default_value(5.0f);
+ b.add_input<decl::Float>("Distortion").min(-1000.0f).max(1000.0f).default_value(0.0f);
+ b.add_input<decl::Float>("Detail").min(0.0f).max(16.0f).default_value(2.0f);
+ b.add_input<decl::Float>("Detail Scale").min(-1000.0f).max(1000.0f).default_value(1.0f);
+ b.add_input<decl::Float>("Detail Roughness")
+ .min(0.0f)
+ .max(1.0f)
+ .default_value(0.5f)
+ .subtype(PROP_FACTOR);
+ b.add_input<decl::Float>("Phase Offset").min(-1000.0f).max(1000.0f).default_value(0.0f);
+ b.add_output<decl::Color>("Color").no_muted_links();
+ b.add_output<decl::Float>("Fac").no_muted_links();
};
-static bNodeSocketTemplate sh_node_tex_wave_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_("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_wave(bNodeTree *UNUSED(ntree), bNode *node)
{
- NodeTexWave *tex = MEM_callocN(sizeof(NodeTexWave), "NodeTexWave");
+ NodeTexWave *tex = (NodeTexWave *)MEM_callocN(sizeof(NodeTexWave), "NodeTexWave");
BKE_texture_mapping_default(&tex->base.tex_mapping, TEXMAP_TYPE_POINT);
BKE_texture_colormapping_default(&tex->base.color_mapping);
tex->wave_type = SHD_WAVE_BANDS;
@@ -91,7 +85,7 @@ void register_node_type_sh_tex_wave(void)
static bNodeType ntype;
sh_node_type_base(&ntype, SH_NODE_TEX_WAVE, "Wave Texture", NODE_CLASS_TEXTURE, 0);
- node_type_socket_templates(&ntype, sh_node_tex_wave_in, sh_node_tex_wave_out);
+ ntype.declare = blender::nodes::sh_node_tex_wave_declare;
node_type_size_preset(&ntype, NODE_SIZE_MIDDLE);
node_type_init(&ntype, node_shader_init_tex_wave);
node_type_storage(&ntype, "NodeTexWave", node_free_standard_storage, node_copy_standard_storage);