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. @@ _______________________________________________ Bf-blender-cvs mailing list [email protected] List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs
