[Bf-blender-cvs] [d3a31311b9b] master: Nodes: Convert shader, texture category nodes to c++
Aaron Carlisle
noreply at git.blender.org
Thu Dec 30 00:40:37 CET 2021
Commit: d3a31311b9ba2108e292d05a91893396456b387c
Author: Aaron Carlisle
Date: Wed Dec 29 15:29:27 2021 -0500
Branches: master
https://developer.blender.org/rBd3a31311b9ba2108e292d05a91893396456b387c
Nodes: Convert shader, texture category nodes to c++
Also add/correct file namespace
This is needed to use new node APIs
Differential Revision: https://developer.blender.org/D13688
===================================================================
M source/blender/nodes/shader/CMakeLists.txt
R078 source/blender/nodes/shader/nodes/node_shader_ies_light.c source/blender/nodes/shader/nodes/node_shader_ies_light.cc
R087 source/blender/nodes/shader/nodes/node_shader_tex_environment.c source/blender/nodes/shader/nodes/node_shader_tex_environment.cc
M source/blender/nodes/shader/nodes/node_shader_tex_musgrave.cc
M source/blender/nodes/shader/nodes/node_shader_tex_noise.cc
R074 source/blender/nodes/shader/nodes/node_shader_tex_pointdensity.c source/blender/nodes/shader/nodes/node_shader_tex_pointdensity.cc
R093 source/blender/nodes/shader/nodes/node_shader_tex_sky.c source/blender/nodes/shader/nodes/node_shader_tex_sky.cc
M source/blender/nodes/shader/nodes/node_shader_tex_voronoi.cc
M source/blender/nodes/shader/nodes/node_shader_tex_wave.cc
M source/blender/nodes/shader/nodes/node_shader_tex_white_noise.cc
===================================================================
diff --git a/source/blender/nodes/shader/CMakeLists.txt b/source/blender/nodes/shader/CMakeLists.txt
index e0e7a97bf50..0ba8c52e453 100644
--- a/source/blender/nodes/shader/CMakeLists.txt
+++ b/source/blender/nodes/shader/CMakeLists.txt
@@ -74,7 +74,7 @@ set(SRC
nodes/node_shader_hair_info.c
nodes/node_shader_holdout.c
nodes/node_shader_hueSatVal.c
- nodes/node_shader_ies_light.c
+ nodes/node_shader_ies_light.cc
nodes/node_shader_invert.c
nodes/node_shader_layer_weight.c
nodes/node_shader_light_falloff.c
@@ -106,14 +106,14 @@ set(SRC
nodes/node_shader_tex_brick.cc
nodes/node_shader_tex_checker.cc
nodes/node_shader_tex_coord.c
- nodes/node_shader_tex_environment.c
+ nodes/node_shader_tex_environment.cc
nodes/node_shader_tex_gradient.cc
nodes/node_shader_tex_image.cc
nodes/node_shader_tex_magic.cc
nodes/node_shader_tex_musgrave.cc
nodes/node_shader_tex_noise.cc
- nodes/node_shader_tex_pointdensity.c
- nodes/node_shader_tex_sky.c
+ nodes/node_shader_tex_pointdensity.cc
+ nodes/node_shader_tex_sky.cc
nodes/node_shader_tex_voronoi.cc
nodes/node_shader_tex_wave.cc
nodes/node_shader_tex_white_noise.cc
diff --git a/source/blender/nodes/shader/nodes/node_shader_ies_light.c b/source/blender/nodes/shader/nodes/node_shader_ies_light.cc
similarity index 78%
rename from source/blender/nodes/shader/nodes/node_shader_ies_light.c
rename to source/blender/nodes/shader/nodes/node_shader_ies_light.cc
index 9cc5fd46181..a8887e642b9 100644
--- a/source/blender/nodes/shader/nodes/node_shader_ies_light.c
+++ b/source/blender/nodes/shader/nodes/node_shader_ies_light.cc
@@ -19,6 +19,8 @@
#include "../node_shader_util.h"
+namespace blender::nodes::node_shader_ies_light_cc {
+
/* **************** IES Light ******************** */
static bNodeSocketTemplate sh_node_tex_ies_in[] = {
@@ -34,18 +36,22 @@ static bNodeSocketTemplate sh_node_tex_ies_out[] = {
static void node_shader_init_tex_ies(bNodeTree *UNUSED(ntree), bNode *node)
{
- NodeShaderTexIES *tex = MEM_callocN(sizeof(NodeShaderTexIES), "NodeShaderIESLight");
+ NodeShaderTexIES *tex = MEM_cnew<NodeShaderTexIES>("NodeShaderIESLight");
node->storage = tex;
}
+} // namespace blender::nodes::node_shader_ies_light_cc
+
/* node type definition */
-void register_node_type_sh_tex_ies(void)
+void register_node_type_sh_tex_ies()
{
+ namespace file_ns = blender::nodes::node_shader_ies_light_cc;
+
static bNodeType ntype;
sh_node_type_base(&ntype, SH_NODE_TEX_IES, "IES Texture", NODE_CLASS_TEXTURE, 0);
- node_type_socket_templates(&ntype, sh_node_tex_ies_in, sh_node_tex_ies_out);
- node_type_init(&ntype, node_shader_init_tex_ies);
+ node_type_socket_templates(&ntype, file_ns::sh_node_tex_ies_in, file_ns::sh_node_tex_ies_out);
+ node_type_init(&ntype, file_ns::node_shader_init_tex_ies);
node_type_storage(
&ntype, "NodeShaderTexIES", node_free_standard_storage, node_copy_standard_storage);
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_environment.c b/source/blender/nodes/shader/nodes/node_shader_tex_environment.cc
similarity index 87%
rename from source/blender/nodes/shader/nodes/node_shader_tex_environment.c
rename to source/blender/nodes/shader/nodes/node_shader_tex_environment.cc
index ff08961b3e9..00bafd1a9d3 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_environment.c
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_environment.cc
@@ -19,6 +19,8 @@
#include "../node_shader_util.h"
+namespace blender::nodes::node_shader_tex_environment_cc {
+
/* **************** OUTPUT ******************** */
static bNodeSocketTemplate sh_node_tex_environment_in[] = {
@@ -33,7 +35,7 @@ static bNodeSocketTemplate sh_node_tex_environment_out[] = {
static void node_shader_init_tex_environment(bNodeTree *UNUSED(ntree), bNode *node)
{
- NodeTexEnvironment *tex = MEM_callocN(sizeof(NodeTexEnvironment), "NodeTexEnvironment");
+ NodeTexEnvironment *tex = MEM_cnew<NodeTexEnvironment>("NodeTexEnvironment");
BKE_texture_mapping_default(&tex->base.tex_mapping, TEXMAP_TYPE_POINT);
BKE_texture_colormapping_default(&tex->base.color_mapping);
tex->projection = SHD_PROJ_EQUIRECTANGULAR;
@@ -49,12 +51,12 @@ static int node_shader_gpu_tex_environment(GPUMaterial *mat,
GPUNodeStack *out)
{
Image *ima = (Image *)node->id;
- NodeTexEnvironment *tex = node->storage;
+ NodeTexEnvironment *tex = (NodeTexEnvironment *)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;
eGPUSamplerState sampler = GPU_SAMPLER_REPEAT | GPU_SAMPLER_ANISO | GPU_SAMPLER_FILTER;
/* TODO(fclem): For now assume mipmap is always enabled. */
@@ -132,17 +134,22 @@ static int node_shader_gpu_tex_environment(GPUMaterial *mat,
return true;
}
+} // namespace blender::nodes::node_shader_tex_environment_cc
+
/* node type definition */
-void register_node_type_sh_tex_environment(void)
+void register_node_type_sh_tex_environment()
{
+ namespace file_ns = blender::nodes::node_shader_tex_environment_cc;
+
static bNodeType ntype;
sh_node_type_base(&ntype, SH_NODE_TEX_ENVIRONMENT, "Environment Texture", NODE_CLASS_TEXTURE, 0);
- node_type_socket_templates(&ntype, sh_node_tex_environment_in, sh_node_tex_environment_out);
- node_type_init(&ntype, node_shader_init_tex_environment);
+ node_type_socket_templates(
+ &ntype, file_ns::sh_node_tex_environment_in, file_ns::sh_node_tex_environment_out);
+ node_type_init(&ntype, file_ns::node_shader_init_tex_environment);
node_type_storage(
&ntype, "NodeTexEnvironment", node_free_standard_storage, node_copy_standard_storage);
- node_type_gpu(&ntype, node_shader_gpu_tex_environment);
+ node_type_gpu(&ntype, file_ns::node_shader_gpu_tex_environment);
ntype.labelfunc = node_image_label;
node_type_size_preset(&ntype, NODE_SIZE_LARGE);
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.cc b/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.cc
index 65d07eac741..2e0dd28ac8c 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.cc
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.cc
@@ -23,7 +23,7 @@
NODE_STORAGE_FUNCS(NodeTexMusgrave)
-namespace blender::nodes::node_shader_musgrave_cc {
+namespace blender::nodes::node_shader_tex_musgrave_cc {
static void sh_node_tex_musgrave_declare(NodeDeclarationBuilder &b)
{
@@ -529,11 +529,11 @@ static void sh_node_musgrave_build_multi_function(
builder.construct_and_set_matching_fn<MusgraveFunction>(tex->dimensions, tex->musgrave_type);
}
-} // namespace blender::nodes::node_shader_musgrave_cc
+} // namespace blender::nodes::node_shader_tex_musgrave_cc
void register_node_type_sh_tex_musgrave()
{
- namespace file_ns = blender::nodes::node_shader_musgrave_cc;
+ namespace file_ns = blender::nodes::node_shader_tex_musgrave_cc;
static bNodeType ntype;
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_noise.cc b/source/blender/nodes/shader/nodes/node_shader_tex_noise.cc
index 4b98689be54..74b0ae73a9d 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_noise.cc
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_noise.cc
@@ -23,7 +23,7 @@
NODE_STORAGE_FUNCS(NodeTexNoise)
-namespace blender::nodes::node_shader_noise_cc {
+namespace blender::nodes::node_shader_tex_noise_cc {
static void sh_node_tex_noise_declare(NodeDeclarationBuilder &b)
{
@@ -246,11 +246,11 @@ static void sh_node_noise_build_multi_function(blender::nodes::NodeMultiFunction
builder.construct_and_set_matching_fn<NoiseFunction>(storage.dimensions);
}
-} // namespace blender::nodes::node_shader_noise_cc
+} // namespace blender::nodes::node_shader_tex_noise_cc
void register_node_type_sh_tex_noise()
{
- namespace file_ns = blender::nodes::node_shader_noise_cc;
+ namespace file_ns = blender::nodes::node_shader_tex_noise_cc;
static bNodeType ntype;
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_pointdensity.c b/source/blender/nodes/shader/nodes/node_shader_tex_pointdensity.cc
similarity index 74%
rename from source/blender/nodes/shader/nodes/node_shader_tex_pointdensity.c
rename to source/blender/nodes/shader/nodes/node_shader_tex_pointdensity.cc
index 14cd1fd4c0c..8e57be6ee8d 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_pointdensity.c
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_pointdensity.cc
@@ -21,6 +21,8 @@
#include "RE_texture.h"
+namespace blender::nodes::node_shader_tex_pointdensity_cc {
+
/* **************** OUTPUT ******************** */
static bNodeSocketTemplate sh_node_tex_pointdensity_in[] = {
@@ -36,8 +38,7 @@ static bNodeSocketTemplate sh_node_tex_pointdensity_out[] = {
static void node_shader_init_tex_pointdensity(bNodeTree *UNUSED(ntree), bNode *node)
{
- NodeShaderTexPointDensity *point_density = MEM_callocN(sizeof(NodeShaderTexPointDensity),
- "new pd node");
+ NodeShaderTexPointDensity *point_density = MEM_cnew<NodeShaderTexPointDensity>("new pd node");
point_density->resolution = 100;
point_density->radius = 0.3f;
point_density->space = SHD_POINTDENSITY_SPACE_OBJECT;
@@ -47,7 +48,7 @@ static void node_shader_init_tex_pointdensity(bNodeTree *UNUSED(ntree), bNode *n
static void node_shader_free_tex_pointdensity(bNode *node)
{
- NodeShaderTexPointDensity *point_density = node->storage;
+ NodeShaderTexPointDensity *point_density = (NodeShaderTexPointDensity *)node->storage;
PointDensity *pd = &point_density->pd;
RE_point_density_free(pd);
BKE_texture_pointdensity_free_data(pd);
@@ -60,23 +61,28 @@ static void node_shader_copy_tex_pointdensity(bNodeTree *UNUSED(dest_ntree),
const bNode *src_node)
{
dest_node->storage = MEM_dup
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list