Commit: ee2b72fd29f7eddc4d18c7fd4dc02077a24d9961 Author: Aaron Carlisle Date: Wed Dec 29 22:37:57 2021 -0500 Branches: master https://developer.blender.org/rBee2b72fd29f7eddc4d18c7fd4dc02077a24d9961
Nodes: Convert several shader nodes to c++ Also add file namespace This is needed to use new node APIs Differential Revision: https://developer.blender.org/D13690 =================================================================== M source/blender/nodes/shader/CMakeLists.txt R083 source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.c source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.cc R083 source/blender/nodes/shader/nodes/node_shader_attribute.c source/blender/nodes/shader/nodes/node_shader_attribute.cc R081 source/blender/nodes/shader/nodes/node_shader_background.c source/blender/nodes/shader/nodes/node_shader_background.cc R083 source/blender/nodes/shader/nodes/node_shader_bevel.c source/blender/nodes/shader/nodes/node_shader_bevel.cc R080 source/blender/nodes/shader/nodes/node_shader_blackbody.c source/blender/nodes/shader/nodes/node_shader_blackbody.cc R082 source/blender/nodes/shader/nodes/node_shader_brightness.c source/blender/nodes/shader/nodes/node_shader_brightness.cc R083 source/blender/nodes/shader/nodes/node_shader_camera.c source/blender/nodes/shader/nodes/node_shader_camera.cc R085 source/blender/nodes/shader/nodes/node_shader_displacement.c source/blender/nodes/shader/nodes/node_shader_displacement.cc R085 source/blender/nodes/shader/nodes/node_shader_eevee_specular.c source/blender/nodes/shader/nodes/node_shader_eevee_specular.cc R082 source/blender/nodes/shader/nodes/node_shader_emission.c source/blender/nodes/shader/nodes/node_shader_emission.cc R084 source/blender/nodes/shader/nodes/node_shader_fresnel.c source/blender/nodes/shader/nodes/node_shader_fresnel.cc R084 source/blender/nodes/shader/nodes/node_shader_gamma.c source/blender/nodes/shader/nodes/node_shader_gamma.cc R091 source/blender/nodes/shader/nodes/node_shader_geometry.c source/blender/nodes/shader/nodes/node_shader_geometry.cc R084 source/blender/nodes/shader/nodes/node_shader_squeeze.c source/blender/nodes/shader/nodes/node_shader_squeeze.cc R082 source/blender/nodes/shader/nodes/node_shader_tangent.c source/blender/nodes/shader/nodes/node_shader_tangent.cc R082 source/blender/nodes/shader/nodes/node_shader_tex_coord.c source/blender/nodes/shader/nodes/node_shader_tex_coord.cc R079 source/blender/nodes/shader/nodes/node_shader_uv_along_stroke.c source/blender/nodes/shader/nodes/node_shader_uv_along_stroke.cc R078 source/blender/nodes/shader/nodes/node_shader_uvmap.c source/blender/nodes/shader/nodes/node_shader_uvmap.cc R084 source/blender/nodes/shader/nodes/node_shader_vector_displacement.c source/blender/nodes/shader/nodes/node_shader_vector_displacement.cc R086 source/blender/nodes/shader/nodes/node_shader_vector_transform.c source/blender/nodes/shader/nodes/node_shader_vector_transform.cc R080 source/blender/nodes/shader/nodes/node_shader_vertex_color.c source/blender/nodes/shader/nodes/node_shader_vertex_color.cc R084 source/blender/nodes/shader/nodes/node_shader_volume_info.c source/blender/nodes/shader/nodes/node_shader_volume_info.cc R082 source/blender/nodes/shader/nodes/node_shader_wavelength.c source/blender/nodes/shader/nodes/node_shader_wavelength.cc R084 source/blender/nodes/shader/nodes/node_shader_wireframe.c source/blender/nodes/shader/nodes/node_shader_wireframe.cc =================================================================== diff --git a/source/blender/nodes/shader/CMakeLists.txt b/source/blender/nodes/shader/CMakeLists.txt index 0ba8c52e453..3e514b8635c 100644 --- a/source/blender/nodes/shader/CMakeLists.txt +++ b/source/blender/nodes/shader/CMakeLists.txt @@ -41,12 +41,12 @@ set(INC set(SRC nodes/node_shader_add_shader.cc - nodes/node_shader_ambient_occlusion.c - nodes/node_shader_attribute.c - nodes/node_shader_background.c - nodes/node_shader_bevel.c - nodes/node_shader_blackbody.c - nodes/node_shader_brightness.c + nodes/node_shader_ambient_occlusion.cc + nodes/node_shader_attribute.cc + nodes/node_shader_background.cc + nodes/node_shader_bevel.cc + nodes/node_shader_blackbody.cc + nodes/node_shader_brightness.cc nodes/node_shader_bsdf_anisotropic.cc nodes/node_shader_bsdf_diffuse.cc nodes/node_shader_bsdf_glass.cc @@ -60,17 +60,17 @@ set(SRC nodes/node_shader_bsdf_transparent.cc nodes/node_shader_bsdf_velvet.cc nodes/node_shader_bump.cc - nodes/node_shader_camera.c + nodes/node_shader_camera.cc nodes/node_shader_clamp.cc nodes/node_shader_color_ramp.cc nodes/node_shader_common.c nodes/node_shader_curves.cc - nodes/node_shader_displacement.c - nodes/node_shader_eevee_specular.c - nodes/node_shader_emission.c - nodes/node_shader_fresnel.c - nodes/node_shader_gamma.c - nodes/node_shader_geometry.c + nodes/node_shader_displacement.cc + nodes/node_shader_eevee_specular.cc + nodes/node_shader_emission.cc + nodes/node_shader_fresnel.cc + nodes/node_shader_gamma.cc + nodes/node_shader_geometry.cc nodes/node_shader_hair_info.c nodes/node_shader_holdout.c nodes/node_shader_hueSatVal.c @@ -100,12 +100,12 @@ set(SRC nodes/node_shader_sepcomb_rgb.cc nodes/node_shader_sepcomb_xyz.cc nodes/node_shader_shader_to_rgb.cc - nodes/node_shader_squeeze.c + nodes/node_shader_squeeze.cc nodes/node_shader_subsurface_scattering.cc - nodes/node_shader_tangent.c + nodes/node_shader_tangent.cc nodes/node_shader_tex_brick.cc nodes/node_shader_tex_checker.cc - nodes/node_shader_tex_coord.c + nodes/node_shader_tex_coord.cc nodes/node_shader_tex_environment.cc nodes/node_shader_tex_gradient.cc nodes/node_shader_tex_image.cc @@ -117,20 +117,20 @@ set(SRC nodes/node_shader_tex_voronoi.cc nodes/node_shader_tex_wave.cc nodes/node_shader_tex_white_noise.cc - nodes/node_shader_uv_along_stroke.c - nodes/node_shader_uvmap.c + nodes/node_shader_uv_along_stroke.cc + nodes/node_shader_uvmap.cc nodes/node_shader_value.cc - nodes/node_shader_vector_displacement.c + nodes/node_shader_vector_displacement.cc nodes/node_shader_vector_math.cc nodes/node_shader_vector_rotate.cc - nodes/node_shader_vector_transform.c - nodes/node_shader_vertex_color.c + nodes/node_shader_vector_transform.cc + nodes/node_shader_vertex_color.cc nodes/node_shader_volume_absorption.cc - nodes/node_shader_volume_info.c + nodes/node_shader_volume_info.cc nodes/node_shader_volume_principled.cc nodes/node_shader_volume_scatter.cc - nodes/node_shader_wavelength.c - nodes/node_shader_wireframe.c + nodes/node_shader_wavelength.cc + nodes/node_shader_wireframe.cc node_shader_tree.c node_shader_util.cc diff --git a/source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.c b/source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.cc similarity index 83% rename from source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.c rename to source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.cc index 2561d6cb398..b4ad3d56d25 100644 --- a/source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.c +++ b/source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.cc @@ -19,6 +19,8 @@ #include "../node_shader_util.h" +namespace blender::nodes::node_shader_ambient_occlusion_cc { + /* **************** OUTPUT ******************** */ static bNodeSocketTemplate sh_node_ambient_occlusion_in[] = { @@ -64,15 +66,20 @@ static void node_shader_init_ambient_occlusion(bNodeTree *UNUSED(ntree), bNode * node->custom2 = 0; } +} // namespace blender::nodes::node_shader_ambient_occlusion_cc + /* node type definition */ -void register_node_type_sh_ambient_occlusion(void) +void register_node_type_sh_ambient_occlusion() { + namespace file_ns = blender::nodes::node_shader_ambient_occlusion_cc; + static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_AMBIENT_OCCLUSION, "Ambient Occlusion", NODE_CLASS_INPUT, 0); - node_type_socket_templates(&ntype, sh_node_ambient_occlusion_in, sh_node_ambient_occlusion_out); - node_type_init(&ntype, node_shader_init_ambient_occlusion); - node_type_gpu(&ntype, node_shader_gpu_ambient_occlusion); + node_type_socket_templates( + &ntype, file_ns::sh_node_ambient_occlusion_in, file_ns::sh_node_ambient_occlusion_out); + node_type_init(&ntype, file_ns::node_shader_init_ambient_occlusion); + node_type_gpu(&ntype, file_ns::node_shader_gpu_ambient_occlusion); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_attribute.c b/source/blender/nodes/shader/nodes/node_shader_attribute.cc similarity index 83% rename from source/blender/nodes/shader/nodes/node_shader_attribute.c rename to source/blender/nodes/shader/nodes/node_shader_attribute.cc index 9b3122e38e0..f0965e3a476 100644 --- a/source/blender/nodes/shader/nodes/node_shader_attribute.c +++ b/source/blender/nodes/shader/nodes/node_shader_attribute.cc @@ -19,6 +19,8 @@ #include "../node_shader_util.h" +namespace blender::nodes::node_shader_attribute_cc { + /* **************** OUTPUT ******************** */ static bNodeSocketTemplate sh_node_attribute_out[] = { @@ -31,7 +33,7 @@ static bNodeSocketTemplate sh_node_attribute_out[] = { static void node_shader_init_attribute(bNodeTree *UNUSED(ntree), bNode *node) { - NodeShaderAttribute *attr = MEM_callocN(sizeof(NodeShaderAttribute), "NodeShaderAttribute"); + NodeShaderAttribute *attr = MEM_cnew<NodeShaderAttribute>("NodeShaderAttribute"); node->storage = attr; } @@ -41,7 +43,7 @@ static int node_shader_gpu_attribute(GPUMaterial *mat, GPUNodeStack *in, GPUNodeStack *out) { - NodeShaderAttribute *attr = node->storage; + NodeShaderAttribute *attr = static_cast<NodeShaderAttribute *>(node->storage); bool is_varying = attr->type == SHD_ATTRIBUTE_GEOMETRY; if (GPU_material_is_volume_shader(mat) && is_varying) { @@ -81,17 +83,21 @@ static int node_shader_gpu_attribute(GPUMaterial *mat, return 1; } +} // namespace blender::nodes::node_shader_attribute_cc + /* node type definition */ -void register_node_type_sh_attribute(void) +void register_node_type_sh_attribute() { + namespace file_ns = blender::nodes::node_shader_attribute_cc; + static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_ATTRIBUTE, "Attribute", NODE_CLASS_INPUT, 0); - node_type_socket_templates(&ntype, NULL, sh_node_attribute_out); - node_type_init(&ntype, node_shader_init_attribute); + node_type_socket_templates(&ntype, nullptr, file_ns::sh_node_attribute_out); + node_type_init(&ntype, file_ns::node_shader_init_attribute); node_type_storage( &ntype, "NodeShaderAttribute", node_free_standard_storage, node_copy_standard_storage); - node_type_gpu(&ntype, node_shader_gpu_attribute); + node_type_gpu(&ntype, file_ns::node_shader_gpu_attribute); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_background.c b/source/blender/nodes/shader/nodes/node_shader_background.cc similarity index 81% rename from source/blender/nodes/shader/nodes/node_shader_background.c rename to source/blender/nodes/shader/nodes/node_shader_background.cc index 5fc9232ba85..b6ac0e06472 100644 --- a/source/blender/nodes/shader/nodes/node_shader_background.c +++ b/source/blender/nodes/shader/nodes/node_shader_background.cc @@ -19,6 +19,8 @@ #include "../node_shader_util.h" +namespace blender::nodes::node_shader_background_cc { + /* **************** OUTPUT ******************** */ static bNodeSocketTemplate sh_node_background_in[] = { @@ -41,14 +43,19 @@ static int node_shader_gpu_background(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_background", in, out); } +} // namespace blender::nodes::node_shader_background_cc + /* node type definition */ -void register_node_type_sh_background(void) +void register_node_type_sh_background() { + namespace file_ns = blender::nodes::node_shader_background_cc; + static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_BACKGROUND, "Background", NODE_CLASS_SHADER, 0); - node_type_socket_templates(&ntype, sh_node_background_in, sh_node_background_out); - node_type_gpu(&ntype, node_shader_gpu_background); + node_type_socket_templates( + &ntype, file_ns::sh_node_background_in, file_ns::sh_node_background_out); + node_type_gpu(&ntype, file_ns::node_shader_gpu_background); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_bevel.c b/source/blender/nodes/shader/nodes/node_shader_bevel.cc similarity index 83% rename from source/blender/nodes/shader/nodes/node_shader_bevel.c rename to source/blender/nodes/shader/nodes/node_shader_bevel.cc index 6988563a76c..5c97d66c345 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bevel.c +++ b/source/blender/nodes/shader/nodes/node_shader_bevel.cc @@ -19,6 +19,8 @@ #include "../node_shader_util.h" +namespace blender::nodes::node_shader_bevel_cc { + /* **************** OUTPUT ******************** */ static bNodeSocketTemplate sh_node_bevel_in[] = { @@ -54,15 +56,19 @@ static int gpu_shader_bevel(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_bevel", in, out); } +} // namespace blender::nodes::node_shader_bevel_cc + /* node type definition */ -void register_node_type_sh_bevel(void) +void register_node_type_sh_bevel() { + namespace file_ns = blender::nodes::node_shader_bevel_cc; + static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_BEVEL, "Bevel", NODE_CLASS_INPUT, 0); - node_type_socket_templates(&ntype, sh_node_bevel_in, sh_node_bevel_out); - node_type_init(&ntype, no @@ 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
