diff options
author | Jacques Lucke <jacques@blender.org> | 2021-12-07 15:26:39 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2021-12-07 15:26:39 +0300 |
commit | 0f48b37aae0230119523a9718b331961bd989a78 (patch) | |
tree | 3cbbeb57645785ed0be60719dd16392c9cee595a /source/blender | |
parent | ae5a89e80af78b85877a049d392a84553f2791aa (diff) |
Revert moving all shader nodes to c++
This reverts to following commits:
* rB5cad004d716da02f511bd34983ac7da820308676
* rB97e3a2d935ba9b21b127eda7ca104d4bcf4e48bd
* rBf60b95b5320f8d6abe6a629fe8fc4f1b94d0d91c
* rB0bd3cad04edf4bf9b9d3b1353f955534aa5e6740
* rBf72cc47d8edf849af98e196f721022bacf86a5e7
* rB3f7014ecc9d523997062eadd62888af5fc70a2b6
* rB0578921063fbb081239439062215f2538a31af4b
* rBc20098e6ec6adee874a12e510aa4a56d89f92838
* rBd5efda72f501ad95679d7ac554086a1fb18c1ac0
The original move to c++ that the other commits depended upon had some issues
that should be fixed before committing it again. The issues were reported in
T93797, T93809 and T93798.
We should also find a better rule for not using c-style casts going forward,
although that wouldn't have been reason enough to revert the commits.
Introducing something like a `MEM_new<T>` and `MEM_delete<T>`
function might help with the the most common case of casting the return
type of `MEM_malloc`.
Going forward, I recommend first committing the changes that don't
require converting files to c++. Then convert the shading node files
in smaller chunks. Especially don't mix fairly low risk changes like
moving some simple nodes, with higher risk changes.
Diffstat (limited to 'source/blender')
190 files changed, 1526 insertions, 2146 deletions
diff --git a/source/blender/blenkernel/intern/node.cc b/source/blender/blenkernel/intern/node.cc index 7dce57a2773..14ba87d51eb 100644 --- a/source/blender/blenkernel/intern/node.cc +++ b/source/blender/blenkernel/intern/node.cc @@ -5592,7 +5592,7 @@ static void registerShaderNodes() register_node_type_sh_wavelength(); register_node_type_sh_blackbody(); register_node_type_sh_mix_rgb(); - register_node_type_sh_color_ramp(); + register_node_type_sh_valtorgb(); register_node_type_sh_rgbtobw(); register_node_type_sh_shadertorgb(); register_node_type_sh_normal(); diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt index da3e0c837a2..c8a14f25f21 100644 --- a/source/blender/nodes/CMakeLists.txt +++ b/source/blender/nodes/CMakeLists.txt @@ -19,7 +19,6 @@ # ***** END GPL LICENSE BLOCK ***** add_subdirectory(geometry) -add_subdirectory(shader) set(INC . @@ -158,6 +157,99 @@ set(SRC function/nodes/node_fn_value_to_string.cc function/node_function_util.cc + shader/nodes/node_shader_add_shader.c + shader/nodes/node_shader_ambient_occlusion.c + shader/nodes/node_shader_attribute.c + shader/nodes/node_shader_background.c + shader/nodes/node_shader_bevel.c + shader/nodes/node_shader_blackbody.c + shader/nodes/node_shader_brightness.c + shader/nodes/node_shader_bsdf_anisotropic.c + shader/nodes/node_shader_bsdf_diffuse.c + shader/nodes/node_shader_bsdf_glass.c + shader/nodes/node_shader_bsdf_glossy.c + shader/nodes/node_shader_bsdf_hair.c + shader/nodes/node_shader_bsdf_hair_principled.c + shader/nodes/node_shader_bsdf_principled.c + shader/nodes/node_shader_bsdf_refraction.c + shader/nodes/node_shader_bsdf_toon.c + shader/nodes/node_shader_bsdf_translucent.c + shader/nodes/node_shader_bsdf_transparent.c + shader/nodes/node_shader_bsdf_velvet.c + shader/nodes/node_shader_bump.c + shader/nodes/node_shader_camera.c + shader/nodes/node_shader_clamp.cc + shader/nodes/node_shader_common.c + shader/nodes/node_shader_curves.cc + shader/nodes/node_shader_displacement.c + shader/nodes/node_shader_eevee_specular.c + shader/nodes/node_shader_emission.c + shader/nodes/node_shader_fresnel.c + shader/nodes/node_shader_gamma.c + shader/nodes/node_shader_geometry.c + shader/nodes/node_shader_hair_info.c + shader/nodes/node_shader_holdout.c + shader/nodes/node_shader_hueSatVal.c + shader/nodes/node_shader_ies_light.c + shader/nodes/node_shader_invert.c + shader/nodes/node_shader_layer_weight.c + shader/nodes/node_shader_light_falloff.c + shader/nodes/node_shader_light_path.c + shader/nodes/node_shader_map_range.cc + shader/nodes/node_shader_mapping.c + shader/nodes/node_shader_math.cc + shader/nodes/node_shader_mixRgb.cc + shader/nodes/node_shader_mix_shader.c + shader/nodes/node_shader_normal.c + shader/nodes/node_shader_normal_map.c + shader/nodes/node_shader_object_info.c + shader/nodes/node_shader_output_aov.c + shader/nodes/node_shader_output_light.c + shader/nodes/node_shader_output_linestyle.c + shader/nodes/node_shader_output_material.c + shader/nodes/node_shader_output_world.c + shader/nodes/node_shader_particle_info.c + shader/nodes/node_shader_rgb.c + shader/nodes/node_shader_script.c + shader/nodes/node_shader_sepcombHSV.c + shader/nodes/node_shader_sepcombRGB.cc + shader/nodes/node_shader_sepcombXYZ.cc + shader/nodes/node_shader_shaderToRgb.c + 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.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.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.cc + shader/nodes/node_shader_tex_white_noise.cc + shader/nodes/node_shader_uvAlongStroke.c + shader/nodes/node_shader_uvmap.c + shader/nodes/node_shader_valToRgb.cc + shader/nodes/node_shader_value.cc + shader/nodes/node_shader_vectTransform.c + shader/nodes/node_shader_vector_displacement.c + shader/nodes/node_shader_vector_math.cc + shader/nodes/node_shader_vector_rotate.cc + shader/nodes/node_shader_vertex_color.c + shader/nodes/node_shader_volume_absorption.c + shader/nodes/node_shader_volume_info.c + shader/nodes/node_shader_volume_principled.c + shader/nodes/node_shader_volume_scatter.c + shader/nodes/node_shader_wavelength.c + shader/nodes/node_shader_wireframe.c + shader/node_shader_tree.c + shader/node_shader_util.cc + texture/nodes/node_texture_at.c texture/nodes/node_texture_bricks.c texture/nodes/node_texture_checker.c @@ -200,7 +292,7 @@ set(SRC composite/node_composite_util.hh function/node_function_util.hh - shader/node_shader_util.hh + shader/node_shader_util.h texture/node_texture_util.h NOD_common.h @@ -229,8 +321,8 @@ set(SRC set(LIB bf_bmesh bf_functions + bf_intern_sky bf_nodes_geometry - bf_nodes_shader ) if(WITH_BULLET) diff --git a/source/blender/nodes/NOD_shader.h b/source/blender/nodes/NOD_shader.h index 74933e69ab2..76c174201e8 100644 --- a/source/blender/nodes/NOD_shader.h +++ b/source/blender/nodes/NOD_shader.h @@ -42,7 +42,7 @@ void register_node_type_sh_camera(void); void register_node_type_sh_value(void); void register_node_type_sh_rgb(void); void register_node_type_sh_mix_rgb(void); -void register_node_type_sh_color_ramp(void); +void register_node_type_sh_valtorgb(void); void register_node_type_sh_rgbtobw(void); void register_node_type_sh_shadertorgb(void); void register_node_type_sh_normal(void); diff --git a/source/blender/nodes/NOD_socket_declarations.hh b/source/blender/nodes/NOD_socket_declarations.hh index 1b78a09d6a8..89bc198f97e 100644 --- a/source/blender/nodes/NOD_socket_declarations.hh +++ b/source/blender/nodes/NOD_socket_declarations.hh @@ -213,22 +213,6 @@ class Image : public IDSocketDeclaration { Image(); }; -class ShaderBuilder; - -class Shader : public SocketDeclaration { - private: - friend ShaderBuilder; - - public: - using Builder = ShaderBuilder; - - bNodeSocket &build(bNodeTree &ntree, bNode &node, eNodeSocketInOut in_out) const override; - bool matches(const bNodeSocket &socket) const override; -}; - -class ShaderBuilder : public SocketDeclarationBuilder<Shader> { -}; - /* -------------------------------------------------------------------- */ /** \name #FloatBuilder Inline Methods * \{ */ diff --git a/source/blender/nodes/composite/node_composite_tree.cc b/source/blender/nodes/composite/node_composite_tree.cc index 1326c9edab1..a9adc01661f 100644 --- a/source/blender/nodes/composite/node_composite_tree.cc +++ b/source/blender/nodes/composite/node_composite_tree.cc @@ -212,7 +212,7 @@ static bool composite_node_tree_socket_type_valid(bNodeTreeType *UNUSED(ntreetyp bNodeTreeType *ntreeType_Composite; -void register_node_tree_type_cmp() +void register_node_tree_type_cmp(void) { bNodeTreeType *tt = ntreeType_Composite = (bNodeTreeType *)MEM_callocN( sizeof(bNodeTreeType), "compositor node tree type"); diff --git a/source/blender/nodes/composite/nodes/node_composite_alphaOver.cc b/source/blender/nodes/composite/nodes/node_composite_alphaOver.cc index b971b26aa6f..262333055d7 100644 --- a/source/blender/nodes/composite/nodes/node_composite_alphaOver.cc +++ b/source/blender/nodes/composite/nodes/node_composite_alphaOver.cc @@ -42,7 +42,7 @@ static void node_alphaover_init(bNodeTree *UNUSED(ntree), bNode *node) node->storage = MEM_callocN(sizeof(NodeTwoFloats), "NodeTwoFloats"); } -void register_node_type_cmp_alphaover() +void register_node_type_cmp_alphaover(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_antialiasing.cc b/source/blender/nodes/composite/nodes/node_composite_antialiasing.cc index a498033733f..6adba7ee3bf 100644 --- a/source/blender/nodes/composite/nodes/node_composite_antialiasing.cc +++ b/source/blender/nodes/composite/nodes/node_composite_antialiasing.cc @@ -49,7 +49,7 @@ static void node_composit_init_antialiasing(bNodeTree *UNUSED(ntree), bNode *nod node->storage = data; } -void register_node_type_cmp_antialiasing() +void register_node_type_cmp_antialiasing(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_bilateralblur.cc b/source/blender/nodes/composite/nodes/node_composite_bilateralblur.cc index 7ec28fba460..3b1171ea11d 100644 --- a/source/blender/nodes/composite/nodes/node_composite_bilateralblur.cc +++ b/source/blender/nodes/composite/nodes/node_composite_bilateralblur.cc @@ -46,7 +46,7 @@ static void node_composit_init_bilateralblur(bNodeTree *UNUSED(ntree), bNode *no nbbd->sigma_space = 5.0; } -void register_node_type_cmp_bilateralblur() +void register_node_type_cmp_bilateralblur(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_blur.cc b/source/blender/nodes/composite/nodes/node_composite_blur.cc index 274c2567749..5cc19416471 100644 --- a/source/blender/nodes/composite/nodes/node_composite_blur.cc +++ b/source/blender/nodes/composite/nodes/node_composite_blur.cc @@ -44,7 +44,7 @@ static void node_composit_init_blur(bNodeTree *UNUSED(ntree), bNode *node) node->storage = data; } -void register_node_type_cmp_blur() +void register_node_type_cmp_blur(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_bokehblur.cc b/source/blender/nodes/composite/nodes/node_composite_bokehblur.cc index b5f3f7c9a1e..9099cae37f1 100644 --- a/source/blender/nodes/composite/nodes/node_composite_bokehblur.cc +++ b/source/blender/nodes/composite/nodes/node_composite_bokehblur.cc @@ -45,7 +45,7 @@ static void node_composit_init_bokehblur(bNodeTree *UNUSED(ntree), bNode *node) node->custom4 = 16.0f; } -void register_node_type_cmp_bokehblur() +void register_node_type_cmp_bokehblur(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_bokehimage.cc b/source/blender/nodes/composite/nodes/node_composite_bokehimage.cc index ad4cbb47a77..3f8a7606d94 100644 --- a/source/blender/nodes/composite/nodes/node_composite_bokehimage.cc +++ b/source/blender/nodes/composite/nodes/node_composite_bokehimage.cc @@ -45,7 +45,7 @@ static void node_composit_init_bokehimage(bNodeTree *UNUSED(ntree), bNode *node) node->storage = data; } -void register_node_type_cmp_bokehimage() +void register_node_type_cmp_bokehimage(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_boxmask.cc b/source/blender/nodes/composite/nodes/node_composite_boxmask.cc index e423bd051fe..b4d2a4dba2a 100644 --- a/source/blender/nodes/composite/nodes/node_composite_boxmask.cc +++ b/source/blender/nodes/composite/nodes/node_composite_boxmask.cc @@ -47,7 +47,7 @@ static void node_composit_init_boxmask(bNodeTree *UNUSED(ntree), bNode *node) node->storage = data; } -void register_node_type_cmp_boxmask() +void register_node_type_cmp_boxmask(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_brightness.cc b/source/blender/nodes/composite/nodes/node_composite_brightness.cc index 69af3fdca10..028afad3cf8 100644 --- a/source/blender/nodes/composite/nodes/node_composite_brightness.cc +++ b/source/blender/nodes/composite/nodes/node_composite_brightness.cc @@ -42,7 +42,7 @@ static void node_composit_init_brightcontrast(bNodeTree *UNUSED(ntree), bNode *n node->custom1 = 1; } -void register_node_type_cmp_brightcontrast() +void register_node_type_cmp_brightcontrast(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_channelMatte.cc b/source/blender/nodes/composite/nodes/node_composite_channelMatte.cc index ec569a27bf8..3d3ed90b198 100644 --- a/source/blender/nodes/composite/nodes/node_composite_channelMatte.cc +++ b/source/blender/nodes/composite/nodes/node_composite_channelMatte.cc @@ -51,7 +51,7 @@ static void node_composit_init_channel_matte(bNodeTree *UNUSED(ntree), bNode *no node->custom2 = 2; /* Green Channel. */ } -void register_node_type_cmp_channel_matte() +void register_node_type_cmp_channel_matte(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_chromaMatte.cc b/source/blender/nodes/composite/nodes/node_composite_chromaMatte.cc index 02e2a24989b..e3a79763cf3 100644 --- a/source/blender/nodes/composite/nodes/node_composite_chromaMatte.cc +++ b/source/blender/nodes/composite/nodes/node_composite_chromaMatte.cc @@ -48,7 +48,7 @@ static void node_composit_init_chroma_matte(bNodeTree *UNUSED(ntree), bNode *nod c->fstrength = 1.0f; } -void register_node_type_cmp_chroma_matte() +void register_node_type_cmp_chroma_matte(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_colorMatte.cc b/source/blender/nodes/composite/nodes/node_composite_colorMatte.cc index 564e9dbbff4..33a50e35514 100644 --- a/source/blender/nodes/composite/nodes/node_composite_colorMatte.cc +++ b/source/blender/nodes/composite/nodes/node_composite_colorMatte.cc @@ -48,7 +48,7 @@ static void node_composit_init_color_matte(bNodeTree *UNUSED(ntree), bNode *node c->fstrength = 1.0f; } -void register_node_type_cmp_color_matte() +void register_node_type_cmp_color_matte(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_colorSpill.cc b/source/blender/nodes/composite/nodes/node_composite_colorSpill.cc index 2e5735414bd..ad1679bb671 100644 --- a/source/blender/nodes/composite/nodes/node_composite_colorSpill.cc +++ b/source/blender/nodes/composite/nodes/node_composite_colorSpill.cc @@ -47,7 +47,7 @@ static void node_composit_init_color_spill(bNodeTree *UNUSED(ntree), bNode *node ncs->unspill = 0; /* do not use unspill */ } -void register_node_type_cmp_color_spill() +void register_node_type_cmp_color_spill(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_colorbalance.cc b/source/blender/nodes/composite/nodes/node_composite_colorbalance.cc index 2e39a6e1ebe..ef8af5f81a6 100644 --- a/source/blender/nodes/composite/nodes/node_composite_colorbalance.cc +++ b/source/blender/nodes/composite/nodes/node_composite_colorbalance.cc @@ -80,7 +80,7 @@ static void node_composit_init_colorbalance(bNodeTree *UNUSED(ntree), bNode *nod node->storage = n; } -void register_node_type_cmp_colorbalance() +void register_node_type_cmp_colorbalance(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_colorcorrection.cc b/source/blender/nodes/composite/nodes/node_composite_colorcorrection.cc index 32f4a7dc1ae..095fbef826a 100644 --- a/source/blender/nodes/composite/nodes/node_composite_colorcorrection.cc +++ b/source/blender/nodes/composite/nodes/node_composite_colorcorrection.cc @@ -66,7 +66,7 @@ static void node_composit_init_colorcorrection(bNodeTree *UNUSED(ntree), bNode * node->storage = n; } -void register_node_type_cmp_colorcorrection() +void register_node_type_cmp_colorcorrection(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_common.cc b/source/blender/nodes/composite/nodes/node_composite_common.cc index f76ab765a51..35e1e124ae5 100644 --- a/source/blender/nodes/composite/nodes/node_composite_common.cc +++ b/source/blender/nodes/composite/nodes/node_composite_common.cc @@ -32,13 +32,14 @@ #include "RNA_access.h" -void register_node_type_cmp_group() +void register_node_type_cmp_group(void) { static bNodeType ntype; /* NOTE: Cannot use sh_node_type_base for node group, because it would map the node type * to the shared NODE_GROUP integer type id. */ - node_type_base_custom(&ntype, "CompositorNodeGroup", "Group", NODE_CLASS_GROUP, 0); + node_type_base_custom( + &ntype, "CompositorNodeGroup", "Group", NODE_CLASS_GROUP, 0); ntype.type = NODE_GROUP; ntype.poll = cmp_node_poll_default; ntype.poll_instance = node_group_poll_instance; diff --git a/source/blender/nodes/composite/nodes/node_composite_composite.cc b/source/blender/nodes/composite/nodes/node_composite_composite.cc index d4558d717e8..a1a49133a3a 100644 --- a/source/blender/nodes/composite/nodes/node_composite_composite.cc +++ b/source/blender/nodes/composite/nodes/node_composite_composite.cc @@ -36,7 +36,7 @@ static void cmp_node_composite_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_composite() +void register_node_type_cmp_composite(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_cornerpin.cc b/source/blender/nodes/composite/nodes/node_composite_cornerpin.cc index 2e7a87a576d..806fa631fb8 100644 --- a/source/blender/nodes/composite/nodes/node_composite_cornerpin.cc +++ b/source/blender/nodes/composite/nodes/node_composite_cornerpin.cc @@ -50,7 +50,7 @@ static void cmp_node_cornerpin_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_cornerpin() +void register_node_type_cmp_cornerpin(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_crop.cc b/source/blender/nodes/composite/nodes/node_composite_crop.cc index 73c4eb85259..622d5c52612 100644 --- a/source/blender/nodes/composite/nodes/node_composite_crop.cc +++ b/source/blender/nodes/composite/nodes/node_composite_crop.cc @@ -45,7 +45,7 @@ static void node_composit_init_crop(bNodeTree *UNUSED(ntree), bNode *node) nxy->y2 = 0; } -void register_node_type_cmp_crop() +void register_node_type_cmp_crop(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_cryptomatte.cc b/source/blender/nodes/composite/nodes/node_composite_cryptomatte.cc index 446a43b638d..39fc86e837b 100644 --- a/source/blender/nodes/composite/nodes/node_composite_cryptomatte.cc +++ b/source/blender/nodes/composite/nodes/node_composite_cryptomatte.cc @@ -297,8 +297,8 @@ static bool node_poll_cryptomatte(bNodeType *UNUSED(ntype), } if (scene == nullptr) { - *r_disabled_hint = TIP_( - "The node tree must be the compositing node tree of any scene in the file"); + *r_disabled_hint = + TIP_("The node tree must be the compositing node tree of any scene in the file"); } return scene != nullptr; } @@ -306,7 +306,7 @@ static bool node_poll_cryptomatte(bNodeType *UNUSED(ntype), return false; } -void register_node_type_cmp_cryptomatte() +void register_node_type_cmp_cryptomatte(void) { static bNodeType ntype; @@ -361,7 +361,7 @@ int ntreeCompositCryptomatteRemoveSocket(bNodeTree *ntree, bNode *node) return 1; } -void register_node_type_cmp_cryptomatte_legacy() +void register_node_type_cmp_cryptomatte_legacy(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_curves.cc b/source/blender/nodes/composite/nodes/node_composite_curves.cc index 53d721ce616..0e3ed53e129 100644 --- a/source/blender/nodes/composite/nodes/node_composite_curves.cc +++ b/source/blender/nodes/composite/nodes/node_composite_curves.cc @@ -42,7 +42,7 @@ static void node_composit_init_curves_time(bNodeTree *UNUSED(ntree), bNode *node node->storage = BKE_curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f); } -void register_node_type_cmp_curve_time() +void register_node_type_cmp_curve_time(void) { static bNodeType ntype; @@ -72,7 +72,7 @@ static void node_composit_init_curve_vec(bNodeTree *UNUSED(ntree), bNode *node) node->storage = BKE_curvemapping_add(3, -1.0f, -1.0f, 1.0f, 1.0f); } -void register_node_type_cmp_curve_vec() +void register_node_type_cmp_curve_vec(void) { static bNodeType ntype; @@ -106,7 +106,7 @@ static void node_composit_init_curve_rgb(bNodeTree *UNUSED(ntree), bNode *node) node->storage = BKE_curvemapping_add(4, 0.0f, 0.0f, 1.0f, 1.0f); } -void register_node_type_cmp_curve_rgb() +void register_node_type_cmp_curve_rgb(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_defocus.cc b/source/blender/nodes/composite/nodes/node_composite_defocus.cc index 1d8a02e463c..ac4c209a74b 100644 --- a/source/blender/nodes/composite/nodes/node_composite_defocus.cc +++ b/source/blender/nodes/composite/nodes/node_composite_defocus.cc @@ -55,7 +55,7 @@ static void node_composit_init_defocus(bNodeTree *UNUSED(ntree), bNode *node) node->storage = nbd; } -void register_node_type_cmp_defocus() +void register_node_type_cmp_defocus(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_denoise.cc b/source/blender/nodes/composite/nodes/node_composite_denoise.cc index 2c07dbb3d81..cce33debf22 100644 --- a/source/blender/nodes/composite/nodes/node_composite_denoise.cc +++ b/source/blender/nodes/composite/nodes/node_composite_denoise.cc @@ -49,7 +49,7 @@ static void node_composit_init_denonise(bNodeTree *UNUSED(ntree), bNode *node) node->storage = ndg; } -void register_node_type_cmp_denoise() +void register_node_type_cmp_denoise(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_despeckle.cc b/source/blender/nodes/composite/nodes/node_composite_despeckle.cc index 070c38feaa8..51a4b0653b3 100644 --- a/source/blender/nodes/composite/nodes/node_composite_despeckle.cc +++ b/source/blender/nodes/composite/nodes/node_composite_despeckle.cc @@ -42,7 +42,7 @@ static void node_composit_init_despeckle(bNodeTree *UNUSED(ntree), bNode *node) node->custom4 = 0.5f; } -void register_node_type_cmp_despeckle() +void register_node_type_cmp_despeckle(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_diffMatte.cc b/source/blender/nodes/composite/nodes/node_composite_diffMatte.cc index bfec3dadd09..9e3ecf9ebb5 100644 --- a/source/blender/nodes/composite/nodes/node_composite_diffMatte.cc +++ b/source/blender/nodes/composite/nodes/node_composite_diffMatte.cc @@ -45,7 +45,7 @@ static void node_composit_init_diff_matte(bNodeTree *UNUSED(ntree), bNode *node) c->t2 = 0.1f; } -void register_node_type_cmp_diff_matte() +void register_node_type_cmp_diff_matte(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_dilate.cc b/source/blender/nodes/composite/nodes/node_composite_dilate.cc index 14e618435d1..4953e26c21f 100644 --- a/source/blender/nodes/composite/nodes/node_composite_dilate.cc +++ b/source/blender/nodes/composite/nodes/node_composite_dilate.cc @@ -43,7 +43,7 @@ static void node_composit_init_dilateerode(bNodeTree *UNUSED(ntree), bNode *node node->storage = data; } -void register_node_type_cmp_dilateerode() +void register_node_type_cmp_dilateerode(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_directionalblur.cc b/source/blender/nodes/composite/nodes/node_composite_directionalblur.cc index cbc2484ceb8..4250938aa44 100644 --- a/source/blender/nodes/composite/nodes/node_composite_directionalblur.cc +++ b/source/blender/nodes/composite/nodes/node_composite_directionalblur.cc @@ -42,7 +42,7 @@ static void node_composit_init_dblur(bNodeTree *UNUSED(ntree), bNode *node) ndbd->center_y = 0.5; } -void register_node_type_cmp_dblur() +void register_node_type_cmp_dblur(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_displace.cc b/source/blender/nodes/composite/nodes/node_composite_displace.cc index 0137c1f7da8..90db3fbcb8e 100644 --- a/source/blender/nodes/composite/nodes/node_composite_displace.cc +++ b/source/blender/nodes/composite/nodes/node_composite_displace.cc @@ -42,7 +42,7 @@ static void cmp_node_displace_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_displace() +void register_node_type_cmp_displace(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_distanceMatte.cc b/source/blender/nodes/composite/nodes/node_composite_distanceMatte.cc index 302170081bb..8c85b488c2c 100644 --- a/source/blender/nodes/composite/nodes/node_composite_distanceMatte.cc +++ b/source/blender/nodes/composite/nodes/node_composite_distanceMatte.cc @@ -46,7 +46,7 @@ static void node_composit_init_distance_matte(bNodeTree *UNUSED(ntree), bNode *n c->t2 = 0.1f; } -void register_node_type_cmp_distance_matte() +void register_node_type_cmp_distance_matte(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_doubleEdgeMask.cc b/source/blender/nodes/composite/nodes/node_composite_doubleEdgeMask.cc index ce4532366a3..2b572c35372 100644 --- a/source/blender/nodes/composite/nodes/node_composite_doubleEdgeMask.cc +++ b/source/blender/nodes/composite/nodes/node_composite_doubleEdgeMask.cc @@ -35,7 +35,7 @@ static void cmp_node_double_edge_mask_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_doubleedgemask() +void register_node_type_cmp_doubleedgemask(void) { static bNodeType ntype; /* Allocate a node type data structure. */ diff --git a/source/blender/nodes/composite/nodes/node_composite_ellipsemask.cc b/source/blender/nodes/composite/nodes/node_composite_ellipsemask.cc index 5f49357107c..6ab5450c7e8 100644 --- a/source/blender/nodes/composite/nodes/node_composite_ellipsemask.cc +++ b/source/blender/nodes/composite/nodes/node_composite_ellipsemask.cc @@ -48,7 +48,7 @@ static void node_composit_init_ellipsemask(bNodeTree *UNUSED(ntree), bNode *node node->storage = data; } -void register_node_type_cmp_ellipsemask() +void register_node_type_cmp_ellipsemask(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_exposure.cc b/source/blender/nodes/composite/nodes/node_composite_exposure.cc index b696db41a3c..c1e64065f7e 100644 --- a/source/blender/nodes/composite/nodes/node_composite_exposure.cc +++ b/source/blender/nodes/composite/nodes/node_composite_exposure.cc @@ -36,7 +36,7 @@ static void cmp_node_exposure_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_exposure() +void register_node_type_cmp_exposure(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_filter.cc b/source/blender/nodes/composite/nodes/node_composite_filter.cc index 72510387b6a..d5d2be295b8 100644 --- a/source/blender/nodes/composite/nodes/node_composite_filter.cc +++ b/source/blender/nodes/composite/nodes/node_composite_filter.cc @@ -36,7 +36,7 @@ static void cmp_node_filter_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_filter() +void register_node_type_cmp_filter(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_flip.cc b/source/blender/nodes/composite/nodes/node_composite_flip.cc index 95a00dd58da..d663aff24d1 100644 --- a/source/blender/nodes/composite/nodes/node_composite_flip.cc +++ b/source/blender/nodes/composite/nodes/node_composite_flip.cc @@ -35,7 +35,7 @@ static void cmp_node_flip_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_flip() +void register_node_type_cmp_flip(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_gamma.cc b/source/blender/nodes/composite/nodes/node_composite_gamma.cc index 438770865ae..74152a27485 100644 --- a/source/blender/nodes/composite/nodes/node_composite_gamma.cc +++ b/source/blender/nodes/composite/nodes/node_composite_gamma.cc @@ -40,7 +40,7 @@ static void cmp_node_gamma_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_gamma() +void register_node_type_cmp_gamma(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_glare.cc b/source/blender/nodes/composite/nodes/node_composite_glare.cc index d3a5fff0b68..2500a129e6f 100644 --- a/source/blender/nodes/composite/nodes/node_composite_glare.cc +++ b/source/blender/nodes/composite/nodes/node_composite_glare.cc @@ -50,7 +50,7 @@ static void node_composit_init_glare(bNodeTree *UNUSED(ntree), bNode *node) node->storage = ndg; } -void register_node_type_cmp_glare() +void register_node_type_cmp_glare(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_hueSatVal.cc b/source/blender/nodes/composite/nodes/node_composite_hueSatVal.cc index 47fbaa4d384..21430035465 100644 --- a/source/blender/nodes/composite/nodes/node_composite_hueSatVal.cc +++ b/source/blender/nodes/composite/nodes/node_composite_hueSatVal.cc @@ -47,7 +47,7 @@ static void cmp_node_huesatval_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_hue_sat() +void register_node_type_cmp_hue_sat(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_huecorrect.cc b/source/blender/nodes/composite/nodes/node_composite_huecorrect.cc index e78ba0c7f9c..83743bbed18 100644 --- a/source/blender/nodes/composite/nodes/node_composite_huecorrect.cc +++ b/source/blender/nodes/composite/nodes/node_composite_huecorrect.cc @@ -51,7 +51,7 @@ static void node_composit_init_huecorrect(bNodeTree *UNUSED(ntree), bNode *node) cumapping->cur = 1; } -void register_node_type_cmp_huecorrect() +void register_node_type_cmp_huecorrect(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_idMask.cc b/source/blender/nodes/composite/nodes/node_composite_idMask.cc index be7d4e22aba..5121370567c 100644 --- a/source/blender/nodes/composite/nodes/node_composite_idMask.cc +++ b/source/blender/nodes/composite/nodes/node_composite_idMask.cc @@ -35,7 +35,7 @@ static void cmp_node_idmask_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_idmask() +void register_node_type_cmp_idmask(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_image.cc b/source/blender/nodes/composite/nodes/node_composite_image.cc index ed76aa50527..4b53010db30 100644 --- a/source/blender/nodes/composite/nodes/node_composite_image.cc +++ b/source/blender/nodes/composite/nodes/node_composite_image.cc @@ -443,7 +443,7 @@ static void node_composit_copy_image(bNodeTree *UNUSED(dest_ntree), } } -void register_node_type_cmp_image() +void register_node_type_cmp_image(void) { static bNodeType ntype; @@ -555,7 +555,7 @@ static void cmp_node_rlayers_update(bNodeTree *ntree, bNode *node) cmp_node_update_default(ntree, node); } -void register_node_type_cmp_rlayers() +void register_node_type_cmp_rlayers(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_inpaint.cc b/source/blender/nodes/composite/nodes/node_composite_inpaint.cc index c7674263b68..5c043fbe878 100644 --- a/source/blender/nodes/composite/nodes/node_composite_inpaint.cc +++ b/source/blender/nodes/composite/nodes/node_composite_inpaint.cc @@ -35,7 +35,7 @@ static void cmp_node_inpaint_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_inpaint() +void register_node_type_cmp_inpaint(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_invert.cc b/source/blender/nodes/composite/nodes/node_composite_invert.cc index caf28d24b44..dabf0452628 100644 --- a/source/blender/nodes/composite/nodes/node_composite_invert.cc +++ b/source/blender/nodes/composite/nodes/node_composite_invert.cc @@ -42,7 +42,7 @@ static void node_composit_init_invert(bNodeTree *UNUSED(ntree), bNode *node) } /* custom1 = mix type */ -void register_node_type_cmp_invert() +void register_node_type_cmp_invert(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_keying.cc b/source/blender/nodes/composite/nodes/node_composite_keying.cc index 6286c61b292..07826cfa492 100644 --- a/source/blender/nodes/composite/nodes/node_composite_keying.cc +++ b/source/blender/nodes/composite/nodes/node_composite_keying.cc @@ -60,7 +60,7 @@ static void node_composit_init_keying(bNodeTree *UNUSED(ntree), bNode *node) node->storage = data; } -void register_node_type_cmp_keying() +void register_node_type_cmp_keying(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_keyingscreen.cc b/source/blender/nodes/composite/nodes/node_composite_keyingscreen.cc index f0423497bed..c8001ec9c60 100644 --- a/source/blender/nodes/composite/nodes/node_composite_keyingscreen.cc +++ b/source/blender/nodes/composite/nodes/node_composite_keyingscreen.cc @@ -46,7 +46,7 @@ static void node_composit_init_keyingscreen(bNodeTree *UNUSED(ntree), bNode *nod node->storage = data; } -void register_node_type_cmp_keyingscreen() +void register_node_type_cmp_keyingscreen(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_lensdist.cc b/source/blender/nodes/composite/nodes/node_composite_lensdist.cc index bd52328db0f..1ea6d45df5b 100644 --- a/source/blender/nodes/composite/nodes/node_composite_lensdist.cc +++ b/source/blender/nodes/composite/nodes/node_composite_lensdist.cc @@ -42,7 +42,7 @@ static void node_composit_init_lensdist(bNodeTree *UNUSED(ntree), bNode *node) node->storage = nld; } -void register_node_type_cmp_lensdist() +void register_node_type_cmp_lensdist(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_levels.cc b/source/blender/nodes/composite/nodes/node_composite_levels.cc index c36e0153991..54064f24e0d 100644 --- a/source/blender/nodes/composite/nodes/node_composite_levels.cc +++ b/source/blender/nodes/composite/nodes/node_composite_levels.cc @@ -41,7 +41,7 @@ static void node_composit_init_view_levels(bNodeTree *UNUSED(ntree), bNode *node node->custom1 = 1; /* All channels. */ } -void register_node_type_cmp_view_levels() +void register_node_type_cmp_view_levels(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_lummaMatte.cc b/source/blender/nodes/composite/nodes/node_composite_lummaMatte.cc index c951dfbcf37..c73b7883e4b 100644 --- a/source/blender/nodes/composite/nodes/node_composite_lummaMatte.cc +++ b/source/blender/nodes/composite/nodes/node_composite_lummaMatte.cc @@ -44,7 +44,7 @@ static void node_composit_init_luma_matte(bNodeTree *UNUSED(ntree), bNode *node) c->t2 = 0.0f; } -void register_node_type_cmp_luma_matte() +void register_node_type_cmp_luma_matte(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_mapRange.cc b/source/blender/nodes/composite/nodes/node_composite_mapRange.cc index 8eefc9beb18..b21a9203bd1 100644 --- a/source/blender/nodes/composite/nodes/node_composite_mapRange.cc +++ b/source/blender/nodes/composite/nodes/node_composite_mapRange.cc @@ -39,7 +39,7 @@ static void cmp_node_map_range_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_map_range() +void register_node_type_cmp_map_range(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_mapUV.cc b/source/blender/nodes/composite/nodes/node_composite_mapUV.cc index 80e4db4bdf0..893710c183d 100644 --- a/source/blender/nodes/composite/nodes/node_composite_mapUV.cc +++ b/source/blender/nodes/composite/nodes/node_composite_mapUV.cc @@ -36,7 +36,7 @@ static void cmp_node_map_uv_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_mapuv() +void register_node_type_cmp_mapuv(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_mapValue.cc b/source/blender/nodes/composite/nodes/node_composite_mapValue.cc index 1b34f987168..8e2c9add414 100644 --- a/source/blender/nodes/composite/nodes/node_composite_mapValue.cc +++ b/source/blender/nodes/composite/nodes/node_composite_mapValue.cc @@ -40,7 +40,7 @@ static void node_composit_init_map_value(bNodeTree *UNUSED(ntree), bNode *node) node->storage = BKE_texture_mapping_add(TEXMAP_TYPE_POINT); } -void register_node_type_cmp_map_value() +void register_node_type_cmp_map_value(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_mask.cc b/source/blender/nodes/composite/nodes/node_composite_mask.cc index 0c6f70a3837..6428fadaa5f 100644 --- a/source/blender/nodes/composite/nodes/node_composite_mask.cc +++ b/source/blender/nodes/composite/nodes/node_composite_mask.cc @@ -56,7 +56,7 @@ static void node_mask_label(bNodeTree *UNUSED(ntree), bNode *node, char *label, } } -void register_node_type_cmp_mask() +void register_node_type_cmp_mask(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_math.cc b/source/blender/nodes/composite/nodes/node_composite_math.cc index e6e4531dd2e..6657d13ce02 100644 --- a/source/blender/nodes/composite/nodes/node_composite_math.cc +++ b/source/blender/nodes/composite/nodes/node_composite_math.cc @@ -43,7 +43,7 @@ static void cmp_node_math_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_math() +void register_node_type_cmp_math(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_mixrgb.cc b/source/blender/nodes/composite/nodes/node_composite_mixrgb.cc index cbfa3509c2b..4f1da66c7e0 100644 --- a/source/blender/nodes/composite/nodes/node_composite_mixrgb.cc +++ b/source/blender/nodes/composite/nodes/node_composite_mixrgb.cc @@ -38,7 +38,7 @@ static void cmp_node_mixrgb_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes /* custom1 = mix type */ -void register_node_type_cmp_mix_rgb() +void register_node_type_cmp_mix_rgb(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_movieclip.cc b/source/blender/nodes/composite/nodes/node_composite_movieclip.cc index 0d44671897b..5d63a1b8002 100644 --- a/source/blender/nodes/composite/nodes/node_composite_movieclip.cc +++ b/source/blender/nodes/composite/nodes/node_composite_movieclip.cc @@ -53,7 +53,7 @@ static void init(const bContext *C, PointerRNA *ptr) user->framenr = 1; } -void register_node_type_cmp_movieclip() +void register_node_type_cmp_movieclip(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_moviedistortion.cc b/source/blender/nodes/composite/nodes/node_composite_moviedistortion.cc index d874be63616..4c1bd12b23f 100644 --- a/source/blender/nodes/composite/nodes/node_composite_moviedistortion.cc +++ b/source/blender/nodes/composite/nodes/node_composite_moviedistortion.cc @@ -73,7 +73,7 @@ static void storage_copy(bNodeTree *UNUSED(dest_ntree), bNode *dest_node, const } } -void register_node_type_cmp_moviedistortion() +void register_node_type_cmp_moviedistortion(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_normal.cc b/source/blender/nodes/composite/nodes/node_composite_normal.cc index b541761a8cc..975dbe310ec 100644 --- a/source/blender/nodes/composite/nodes/node_composite_normal.cc +++ b/source/blender/nodes/composite/nodes/node_composite_normal.cc @@ -40,7 +40,7 @@ static void cmp_node_normal_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_normal() +void register_node_type_cmp_normal(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_normalize.cc b/source/blender/nodes/composite/nodes/node_composite_normalize.cc index dd3939fa6e2..44c1a28f399 100644 --- a/source/blender/nodes/composite/nodes/node_composite_normalize.cc +++ b/source/blender/nodes/composite/nodes/node_composite_normalize.cc @@ -35,7 +35,7 @@ static void cmp_node_normalize_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_normalize() +void register_node_type_cmp_normalize(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_outputFile.cc b/source/blender/nodes/composite/nodes/node_composite_outputFile.cc index 6a1b83f657e..c4e0368934f 100644 --- a/source/blender/nodes/composite/nodes/node_composite_outputFile.cc +++ b/source/blender/nodes/composite/nodes/node_composite_outputFile.cc @@ -277,7 +277,7 @@ static void update_output_file(bNodeTree *ntree, bNode *node) } } -void register_node_type_cmp_output_file() +void register_node_type_cmp_output_file(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_pixelate.cc b/source/blender/nodes/composite/nodes/node_composite_pixelate.cc index 3679aada759..7e164196de8 100644 --- a/source/blender/nodes/composite/nodes/node_composite_pixelate.cc +++ b/source/blender/nodes/composite/nodes/node_composite_pixelate.cc @@ -35,7 +35,7 @@ static void cmp_node_pixelate_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_pixelate() +void register_node_type_cmp_pixelate(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_planetrackdeform.cc b/source/blender/nodes/composite/nodes/node_composite_planetrackdeform.cc index 82738d70531..db820d291f9 100644 --- a/source/blender/nodes/composite/nodes/node_composite_planetrackdeform.cc +++ b/source/blender/nodes/composite/nodes/node_composite_planetrackdeform.cc @@ -43,7 +43,7 @@ static void init(bNodeTree *UNUSED(ntree), bNode *node) node->storage = data; } -void register_node_type_cmp_planetrackdeform() +void register_node_type_cmp_planetrackdeform(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_posterize.cc b/source/blender/nodes/composite/nodes/node_composite_posterize.cc index 8437c72e76c..bd3968683ea 100644 --- a/source/blender/nodes/composite/nodes/node_composite_posterize.cc +++ b/source/blender/nodes/composite/nodes/node_composite_posterize.cc @@ -36,7 +36,7 @@ static void cmp_node_posterize_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_posterize() +void register_node_type_cmp_posterize(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_premulkey.cc b/source/blender/nodes/composite/nodes/node_composite_premulkey.cc index 8dec90c875a..49068429a8d 100644 --- a/source/blender/nodes/composite/nodes/node_composite_premulkey.cc +++ b/source/blender/nodes/composite/nodes/node_composite_premulkey.cc @@ -35,7 +35,7 @@ static void cmp_node_premulkey_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_premulkey() +void register_node_type_cmp_premulkey(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_rgb.cc b/source/blender/nodes/composite/nodes/node_composite_rgb.cc index 54f152d1cd0..abe69d6a756 100644 --- a/source/blender/nodes/composite/nodes/node_composite_rgb.cc +++ b/source/blender/nodes/composite/nodes/node_composite_rgb.cc @@ -34,7 +34,7 @@ static void cmp_node_rgb_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_rgb() +void register_node_type_cmp_rgb(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_rotate.cc b/source/blender/nodes/composite/nodes/node_composite_rotate.cc index 8ddd62a6226..1ac04c554fb 100644 --- a/source/blender/nodes/composite/nodes/node_composite_rotate.cc +++ b/source/blender/nodes/composite/nodes/node_composite_rotate.cc @@ -45,7 +45,7 @@ static void node_composit_init_rotate(bNodeTree *UNUSED(ntree), bNode *node) node->custom1 = 1; /* Bilinear Filter. */ } -void register_node_type_cmp_rotate() +void register_node_type_cmp_rotate(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_scale.cc b/source/blender/nodes/composite/nodes/node_composite_scale.cc index 14890146818..81acd646920 100644 --- a/source/blender/nodes/composite/nodes/node_composite_scale.cc +++ b/source/blender/nodes/composite/nodes/node_composite_scale.cc @@ -50,7 +50,7 @@ static void node_composite_update_scale(bNodeTree *ntree, bNode *node) } } -void register_node_type_cmp_scale() +void register_node_type_cmp_scale(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcombHSVA.cc b/source/blender/nodes/composite/nodes/node_composite_sepcombHSVA.cc index 9eafc0e3594..83c54069658 100644 --- a/source/blender/nodes/composite/nodes/node_composite_sepcombHSVA.cc +++ b/source/blender/nodes/composite/nodes/node_composite_sepcombHSVA.cc @@ -38,7 +38,7 @@ static void cmp_node_sephsva_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_sephsva() +void register_node_type_cmp_sephsva(void) { static bNodeType ntype; @@ -62,7 +62,7 @@ static void cmp_node_combhsva_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_combhsva() +void register_node_type_cmp_combhsva(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcombRGBA.cc b/source/blender/nodes/composite/nodes/node_composite_sepcombRGBA.cc index e81ea6f31be..049e798af0a 100644 --- a/source/blender/nodes/composite/nodes/node_composite_sepcombRGBA.cc +++ b/source/blender/nodes/composite/nodes/node_composite_sepcombRGBA.cc @@ -37,7 +37,7 @@ static void cmp_node_seprgba_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_seprgba() +void register_node_type_cmp_seprgba(void) { static bNodeType ntype; @@ -62,7 +62,7 @@ static void cmp_node_combrgba_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_combrgba() +void register_node_type_cmp_combrgba(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.cc b/source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.cc index 15c8efc2ef8..eaf6ba5e9b2 100644 --- a/source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.cc +++ b/source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.cc @@ -43,7 +43,7 @@ static void node_composit_init_mode_sepycca(bNodeTree *UNUSED(ntree), bNode *nod node->custom1 = 1; /* BLI_YCC_ITU_BT709 */ } -void register_node_type_cmp_sepycca() +void register_node_type_cmp_sepycca(void) { static bNodeType ntype; @@ -74,7 +74,7 @@ static void node_composit_init_mode_combycca(bNodeTree *UNUSED(ntree), bNode *no node->custom1 = 1; /* BLI_YCC_ITU_BT709 */ } -void register_node_type_cmp_combycca() +void register_node_type_cmp_combycca(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcombYUVA.cc b/source/blender/nodes/composite/nodes/node_composite_sepcombYUVA.cc index 4d4b01c2fb3..bc7710122d1 100644 --- a/source/blender/nodes/composite/nodes/node_composite_sepcombYUVA.cc +++ b/source/blender/nodes/composite/nodes/node_composite_sepcombYUVA.cc @@ -38,7 +38,7 @@ static void cmp_node_sepyuva_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_sepyuva() +void register_node_type_cmp_sepyuva(void) { static bNodeType ntype; @@ -63,7 +63,7 @@ static void cmp_node_combyuva_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_combyuva() +void register_node_type_cmp_combyuva(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_setalpha.cc b/source/blender/nodes/composite/nodes/node_composite_setalpha.cc index 04eb055f3b2..f59ba76f0c5 100644 --- a/source/blender/nodes/composite/nodes/node_composite_setalpha.cc +++ b/source/blender/nodes/composite/nodes/node_composite_setalpha.cc @@ -43,7 +43,7 @@ static void node_composit_init_setalpha(bNodeTree *UNUSED(ntree), bNode *node) settings->mode = CMP_NODE_SETALPHA_MODE_APPLY; } -void register_node_type_cmp_setalpha() +void register_node_type_cmp_setalpha(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_splitViewer.cc b/source/blender/nodes/composite/nodes/node_composite_splitViewer.cc index ad8dcd0d8e9..62b8f9a34ca 100644 --- a/source/blender/nodes/composite/nodes/node_composite_splitViewer.cc +++ b/source/blender/nodes/composite/nodes/node_composite_splitViewer.cc @@ -48,7 +48,7 @@ static void node_composit_init_splitviewer(bNodeTree *UNUSED(ntree), bNode *node node->id = (ID *)BKE_image_ensure_viewer(G.main, IMA_TYPE_COMPOSITE, "Viewer Node"); } -void register_node_type_cmp_splitviewer() +void register_node_type_cmp_splitviewer(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_stabilize2d.cc b/source/blender/nodes/composite/nodes/node_composite_stabilize2d.cc index 841cc6a5da3..a6a18705f2f 100644 --- a/source/blender/nodes/composite/nodes/node_composite_stabilize2d.cc +++ b/source/blender/nodes/composite/nodes/node_composite_stabilize2d.cc @@ -50,7 +50,7 @@ static void init(const bContext *C, PointerRNA *ptr) node->custom1 = 1; } -void register_node_type_cmp_stabilize2d() +void register_node_type_cmp_stabilize2d(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_sunbeams.cc b/source/blender/nodes/composite/nodes/node_composite_sunbeams.cc index 06d32569b0b..43468e20d03 100644 --- a/source/blender/nodes/composite/nodes/node_composite_sunbeams.cc +++ b/source/blender/nodes/composite/nodes/node_composite_sunbeams.cc @@ -42,7 +42,7 @@ static void init(bNodeTree *UNUSED(ntree), bNode *node) node->storage = data; } -void register_node_type_cmp_sunbeams() +void register_node_type_cmp_sunbeams(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_switch.cc b/source/blender/nodes/composite/nodes/node_composite_switch.cc index e8e7e7eb941..0430a8c9f7a 100644 --- a/source/blender/nodes/composite/nodes/node_composite_switch.cc +++ b/source/blender/nodes/composite/nodes/node_composite_switch.cc @@ -37,7 +37,7 @@ static void cmp_node_switch_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes /* custom1 = mix type */ -void register_node_type_cmp_switch() +void register_node_type_cmp_switch(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_switchview.cc b/source/blender/nodes/composite/nodes/node_composite_switchview.cc index b452a894e7c..a61712f7f8d 100644 --- a/source/blender/nodes/composite/nodes/node_composite_switchview.cc +++ b/source/blender/nodes/composite/nodes/node_composite_switchview.cc @@ -137,7 +137,7 @@ static void init_switch_view(const bContext *C, PointerRNA *ptr) cmp_node_switch_view_sanitycheck(ntree, node); } -void register_node_type_cmp_switch_view() +void register_node_type_cmp_switch_view(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_texture.cc b/source/blender/nodes/composite/nodes/node_composite_texture.cc index 5e5fca755b2..55ae6a4185e 100644 --- a/source/blender/nodes/composite/nodes/node_composite_texture.cc +++ b/source/blender/nodes/composite/nodes/node_composite_texture.cc @@ -41,7 +41,7 @@ static void cmp_node_texture_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_texture() +void register_node_type_cmp_texture(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_tonemap.cc b/source/blender/nodes/composite/nodes/node_composite_tonemap.cc index e23243e9bee..33d6f98201c 100644 --- a/source/blender/nodes/composite/nodes/node_composite_tonemap.cc +++ b/source/blender/nodes/composite/nodes/node_composite_tonemap.cc @@ -49,7 +49,7 @@ static void node_composit_init_tonemap(bNodeTree *UNUSED(ntree), bNode *node) node->storage = ntm; } -void register_node_type_cmp_tonemap() +void register_node_type_cmp_tonemap(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_trackpos.cc b/source/blender/nodes/composite/nodes/node_composite_trackpos.cc index 3780a7e1aa1..537f7e661db 100644 --- a/source/blender/nodes/composite/nodes/node_composite_trackpos.cc +++ b/source/blender/nodes/composite/nodes/node_composite_trackpos.cc @@ -42,7 +42,7 @@ static void init(bNodeTree *UNUSED(ntree), bNode *node) node->storage = data; } -void register_node_type_cmp_trackpos() +void register_node_type_cmp_trackpos(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_transform.cc b/source/blender/nodes/composite/nodes/node_composite_transform.cc index 1acc671626a..ade737d9a63 100644 --- a/source/blender/nodes/composite/nodes/node_composite_transform.cc +++ b/source/blender/nodes/composite/nodes/node_composite_transform.cc @@ -43,7 +43,7 @@ static void cmp_node_transform_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_transform() +void register_node_type_cmp_transform(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_translate.cc b/source/blender/nodes/composite/nodes/node_composite_translate.cc index 2ad70b4a0e5..15652664a7a 100644 --- a/source/blender/nodes/composite/nodes/node_composite_translate.cc +++ b/source/blender/nodes/composite/nodes/node_composite_translate.cc @@ -44,7 +44,7 @@ static void node_composit_init_translate(bNodeTree *UNUSED(ntree), bNode *node) node->storage = data; } -void register_node_type_cmp_translate() +void register_node_type_cmp_translate(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_valToRgb.cc b/source/blender/nodes/composite/nodes/node_composite_valToRgb.cc index dca6c9c141c..a0ab056e657 100644 --- a/source/blender/nodes/composite/nodes/node_composite_valToRgb.cc +++ b/source/blender/nodes/composite/nodes/node_composite_valToRgb.cc @@ -41,7 +41,7 @@ static void node_composit_init_valtorgb(bNodeTree *UNUSED(ntree), bNode *node) node->storage = BKE_colorband_add(true); } -void register_node_type_cmp_valtorgb() +void register_node_type_cmp_valtorgb(void) { static bNodeType ntype; @@ -66,7 +66,7 @@ static void cmp_node_rgbtobw_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_rgbtobw() +void register_node_type_cmp_rgbtobw(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_value.cc b/source/blender/nodes/composite/nodes/node_composite_value.cc index d2274d2d82a..51214d23472 100644 --- a/source/blender/nodes/composite/nodes/node_composite_value.cc +++ b/source/blender/nodes/composite/nodes/node_composite_value.cc @@ -34,7 +34,7 @@ static void cmp_node_value_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_value() +void register_node_type_cmp_value(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_vecBlur.cc b/source/blender/nodes/composite/nodes/node_composite_vecBlur.cc index 7c82001210d..600e4dd9d12 100644 --- a/source/blender/nodes/composite/nodes/node_composite_vecBlur.cc +++ b/source/blender/nodes/composite/nodes/node_composite_vecBlur.cc @@ -50,7 +50,7 @@ static void node_composit_init_vecblur(bNodeTree *UNUSED(ntree), bNode *node) } /* custom1: iterations, custom2: max_speed (0 = no_limit). */ -void register_node_type_cmp_vecblur() +void register_node_type_cmp_vecblur(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_viewer.cc b/source/blender/nodes/composite/nodes/node_composite_viewer.cc index ebac7d31c52..90f9882099b 100644 --- a/source/blender/nodes/composite/nodes/node_composite_viewer.cc +++ b/source/blender/nodes/composite/nodes/node_composite_viewer.cc @@ -50,7 +50,7 @@ static void node_composit_init_viewer(bNodeTree *UNUSED(ntree), bNode *node) node->id = (ID *)BKE_image_ensure_viewer(G.main, IMA_TYPE_COMPOSITE, "Viewer Node"); } -void register_node_type_cmp_viewer() +void register_node_type_cmp_viewer(void) { static bNodeType ntype; diff --git a/source/blender/nodes/composite/nodes/node_composite_zcombine.cc b/source/blender/nodes/composite/nodes/node_composite_zcombine.cc index 982714e030e..9c39148ed5d 100644 --- a/source/blender/nodes/composite/nodes/node_composite_zcombine.cc +++ b/source/blender/nodes/composite/nodes/node_composite_zcombine.cc @@ -39,7 +39,7 @@ static void cmp_node_zcombine_declare(NodeDeclarationBuilder &b) } // namespace blender::nodes -void register_node_type_cmp_zcombine() +void register_node_type_cmp_zcombine(void) { static bNodeType ntype; diff --git a/source/blender/nodes/intern/node_socket_declarations.cc b/source/blender/nodes/intern/node_socket_declarations.cc index 1795cc339e7..ed5691ebf7f 100644 --- a/source/blender/nodes/intern/node_socket_declarations.cc +++ b/source/blender/nodes/intern/node_socket_declarations.cc @@ -376,29 +376,4 @@ GeometryBuilder &GeometryBuilder::only_instances(bool value) /** \} */ -/* -------------------------------------------------------------------- */ -/** \name #Shader - * \{ */ - -bNodeSocket &Shader::build(bNodeTree &ntree, bNode &node, eNodeSocketInOut in_out) const -{ - bNodeSocket &socket = *nodeAddSocket( - &ntree, &node, in_out, "NodeSocketShader", identifier_.c_str(), name_.c_str()); - this->set_common_flags(socket); - return socket; -} - -bool Shader::matches(const bNodeSocket &socket) const -{ - if (!this->matches_common_data(socket)) { - return false; - } - if (socket.type != SOCK_SHADER) { - return false; - } - return true; -} - -/** \} */ - } // namespace blender::nodes::decl diff --git a/source/blender/nodes/shader/CMakeLists.txt b/source/blender/nodes/shader/CMakeLists.txt deleted file mode 100644 index bdbdef6e9ec..00000000000 --- a/source/blender/nodes/shader/CMakeLists.txt +++ /dev/null @@ -1,171 +0,0 @@ -# ***** BEGIN GPL LICENSE BLOCK ***** -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# ***** END GPL LICENSE BLOCK ***** - -set(INC - . - ../ - ../intern - ../../blenkernel - ../../blenlib - ../../blentranslation - ../../depsgraph - ../../functions - ../../gpu - ../../imbuf - ../../makesdna - ../../makesrna - ../../render - ../../windowmanager - ../../../../intern/guardedalloc - ../../../../intern/sky/include -) - - -set(SRC - nodes/node_shader_add_shader.cc - 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 - nodes/node_shader_bsdf_glossy.cc - nodes/node_shader_bsdf_hair.cc - nodes/node_shader_bsdf_hair_principled.cc - nodes/node_shader_bsdf_principled.cc - nodes/node_shader_bsdf_refraction.cc - nodes/node_shader_bsdf_toon.cc - nodes/node_shader_bsdf_translucent.cc - nodes/node_shader_bsdf_transparent.cc - nodes/node_shader_bsdf_velvet.cc - nodes/node_shader_bump.cc - nodes/node_shader_camera.cc - nodes/node_shader_clamp.cc - nodes/node_shader_color_ramp.cc - nodes/node_shader_combine_hsv.cc - nodes/node_shader_combine_rgb.cc - nodes/node_shader_combine_xyz.cc - nodes/node_shader_common.cc - nodes/node_shader_curves.cc - 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.cc - nodes/node_shader_holdout.cc - nodes/node_shader_hueSatVal.cc - nodes/node_shader_ies_light.cc - nodes/node_shader_invert.cc - nodes/node_shader_layer_weight.cc - nodes/node_shader_light_falloff.cc - nodes/node_shader_light_path.cc - nodes/node_shader_map_range.cc - nodes/node_shader_mapping.cc - nodes/node_shader_math.cc - nodes/node_shader_mix_rgb.cc - nodes/node_shader_mix_shader.cc - nodes/node_shader_normal.cc - nodes/node_shader_normal_map.cc - nodes/node_shader_object_info.cc - nodes/node_shader_output_aov.cc - nodes/node_shader_output_light.cc - nodes/node_shader_output_linestyle.cc - nodes/node_shader_output_material.cc - nodes/node_shader_output_world.cc - nodes/node_shader_particle_info.cc - nodes/node_shader_rgb.cc - nodes/node_shader_rgb_to_bw.cc - nodes/node_shader_script.cc - nodes/node_shader_separate_hsv.cc - nodes/node_shader_separate_rgb.cc - nodes/node_shader_separate_xyz.cc - nodes/node_shader_shader_to_rgb.cc - nodes/node_shader_squeeze.cc - nodes/node_shader_subsurface_scattering.cc - nodes/node_shader_tangent.cc - nodes/node_shader_tex_brick.cc - nodes/node_shader_tex_checker.cc - nodes/node_shader_tex_coord.cc - 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.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 - nodes/node_shader_uv_along_stroke.cc - nodes/node_shader_uvmap.cc - nodes/node_shader_value.cc - nodes/node_shader_vector_displacement.cc - nodes/node_shader_vector_math.cc - nodes/node_shader_vector_rotate.cc - nodes/node_shader_vector_transform.cc - nodes/node_shader_vertex_color.cc - nodes/node_shader_volume_absorption.cc - nodes/node_shader_volume_info.cc - nodes/node_shader_volume_principled.cc - nodes/node_shader_volume_scatter.cc - nodes/node_shader_wavelength.cc - nodes/node_shader_wireframe.cc - - node_shader_tree.cc - node_shader_util.cc -) - -set(LIB - bf_functions - bf_intern_sky -) - -if(WITH_PYTHON) - list(APPEND INC - ../../python - ) - list(APPEND INC_SYS - ${PYTHON_INCLUDE_DIRS} - ) - list(APPEND LIB - ${PYTHON_LINKFLAGS} - ${PYTHON_LIBRARIES} - ) - add_definitions(-DWITH_PYTHON) -endif() - -if(WITH_INTERNATIONAL) - add_definitions(-DWITH_INTERNATIONAL) -endif() - -if(WITH_FREESTYLE) - add_definitions(-DWITH_FREESTYLE) -endif() - -blender_add_lib(bf_nodes_shader "${SRC}" "${INC}" "${INC_SYS}" "${LIB}") - -if(WITH_UNITY_BUILD) - set_target_properties(bf_nodes_shader PROPERTIES UNITY_BUILD ON) - set_target_properties(bf_nodes_shader PROPERTIES UNITY_BUILD_BATCH_SIZE 10) -endif() diff --git a/source/blender/nodes/shader/node_shader_tree.cc b/source/blender/nodes/shader/node_shader_tree.c index 9b2c48f4fb3..40023ca80d8 100644 --- a/source/blender/nodes/shader/node_shader_tree.cc +++ b/source/blender/nodes/shader/node_shader_tree.c @@ -21,7 +21,7 @@ * \ingroup nodes */ -#include <cstring> +#include <string.h> #include "DNA_light_types.h" #include "DNA_linestyle_types.h" @@ -56,12 +56,12 @@ #include "node_common.h" #include "node_exec.h" -#include "node_shader_util.hh" +#include "node_shader_util.h" #include "node_util.h" -struct nTreeTags { +typedef struct nTreeTags { float ssr_id, sss_id; -}; +} nTreeTags; static void ntree_shader_tag_nodes(bNodeTree *ntree, bNode *output_node, nTreeTags *tags); @@ -91,7 +91,7 @@ static void shader_get_from_context(const bContext *C, if (ob) { *r_from = &ob->id; if (ob->type == OB_LAMP) { - *r_id = (ID *)ob->data; + *r_id = ob->data; *r_ntree = ((Light *)ob->data)->nodetree; } else { @@ -107,7 +107,7 @@ static void shader_get_from_context(const bContext *C, else if (snode->shaderfrom == SNODE_SHADER_LINESTYLE) { FreestyleLineStyle *linestyle = BKE_linestyle_active_from_view_layer(view_layer); if (linestyle) { - *r_from = nullptr; + *r_from = NULL; *r_id = &linestyle->id; *r_ntree = linestyle->nodetree; } @@ -115,7 +115,7 @@ static void shader_get_from_context(const bContext *C, #endif else { /* SNODE_SHADER_WORLD */ if (scene->world) { - *r_from = nullptr; + *r_from = NULL; *r_id = &scene->world->id; *r_ntree = scene->world->nodetree; } @@ -189,10 +189,10 @@ static bool shader_node_tree_socket_type_valid(bNodeTreeType *UNUSED(ntreetype), bNodeTreeType *ntreeType_Shader; -void register_node_tree_type_sh() +void register_node_tree_type_sh(void) { - bNodeTreeType *tt = ntreeType_Shader = (bNodeTreeType *)MEM_callocN(sizeof(bNodeTreeType), - "shader node tree type"); + bNodeTreeType *tt = ntreeType_Shader = MEM_callocN(sizeof(bNodeTreeType), + "shader node tree type"); tt->type = NTREE_SHADER; strcpy(tt->idname, "ShaderNodeTree"); @@ -224,7 +224,7 @@ bNode *ntreeShaderOutputNode(bNodeTree *ntree, int target) /* Find output node that matches type and target. If there are * multiple, we prefer exact target match and active nodes. */ - bNode *output_node = nullptr; + bNode *output_node = NULL; LISTBASE_FOREACH (bNode *, node, &ntree->nodes) { if (!ELEM(node->type, SH_NODE_OUTPUT_MATERIAL, SH_NODE_OUTPUT_WORLD, SH_NODE_OUTPUT_LIGHT)) { @@ -232,7 +232,7 @@ bNode *ntreeShaderOutputNode(bNodeTree *ntree, int target) } if (node->custom1 == SHD_OUTPUT_ALL) { - if (output_node == nullptr) { + if (output_node == NULL) { output_node = node; } else if (output_node->custom1 == SHD_OUTPUT_ALL) { @@ -242,7 +242,7 @@ bNode *ntreeShaderOutputNode(bNodeTree *ntree, int target) } } else if (node->custom1 == target) { - if (output_node == nullptr) { + if (output_node == NULL) { output_node = node; } else if (output_node->custom1 == SHD_OUTPUT_ALL) { @@ -260,12 +260,12 @@ bNode *ntreeShaderOutputNode(bNodeTree *ntree, int target) /* Find socket with a specified identifier. */ static bNodeSocket *ntree_shader_node_find_socket(ListBase *sockets, const char *identifier) { - LISTBASE_FOREACH (bNodeSocket *, sock, sockets) { + for (bNodeSocket *sock = sockets->first; sock != NULL; sock = sock->next) { if (STREQ(sock->identifier, identifier)) { return sock; } } - return nullptr; + return NULL; } /* Find input socket with a specified identifier. */ @@ -294,37 +294,37 @@ static bool ntree_shader_expand_socket_default(bNodeTree *localtree, switch (socket->type) { case SOCK_VECTOR: - value_node = nodeAddStaticNode(nullptr, localtree, SH_NODE_RGB); + value_node = nodeAddStaticNode(NULL, localtree, SH_NODE_RGB); value_socket = ntree_shader_node_find_output(value_node, "Color"); - BLI_assert(value_socket != nullptr); - src_vector = (bNodeSocketValueVector *)socket->default_value; - dst_rgba = (bNodeSocketValueRGBA *)value_socket->default_value; + BLI_assert(value_socket != NULL); + src_vector = socket->default_value; + dst_rgba = value_socket->default_value; copy_v3_v3(dst_rgba->value, src_vector->value); dst_rgba->value[3] = 1.0f; /* should never be read */ break; case SOCK_RGBA: - value_node = nodeAddStaticNode(nullptr, localtree, SH_NODE_RGB); + value_node = nodeAddStaticNode(NULL, localtree, SH_NODE_RGB); value_socket = ntree_shader_node_find_output(value_node, "Color"); - BLI_assert(value_socket != nullptr); - src_rgba = (bNodeSocketValueRGBA *)socket->default_value; - dst_rgba = (bNodeSocketValueRGBA *)value_socket->default_value; + BLI_assert(value_socket != NULL); + src_rgba = socket->default_value; + dst_rgba = value_socket->default_value; copy_v4_v4(dst_rgba->value, src_rgba->value); break; case SOCK_INT: /* HACK: Support as float. */ - value_node = nodeAddStaticNode(nullptr, localtree, SH_NODE_VALUE); + value_node = nodeAddStaticNode(NULL, localtree, SH_NODE_VALUE); value_socket = ntree_shader_node_find_output(value_node, "Value"); - BLI_assert(value_socket != nullptr); - src_int = (bNodeSocketValueInt *)socket->default_value; - dst_float = (bNodeSocketValueFloat *)value_socket->default_value; + BLI_assert(value_socket != NULL); + src_int = socket->default_value; + dst_float = value_socket->default_value; dst_float->value = (float)(src_int->value); break; case SOCK_FLOAT: - value_node = nodeAddStaticNode(nullptr, localtree, SH_NODE_VALUE); + value_node = nodeAddStaticNode(NULL, localtree, SH_NODE_VALUE); value_socket = ntree_shader_node_find_output(value_node, "Value"); - BLI_assert(value_socket != nullptr); - src_float = (bNodeSocketValueFloat *)socket->default_value; - dst_float = (bNodeSocketValueFloat *)value_socket->default_value; + BLI_assert(value_socket != NULL); + src_float = socket->default_value; + dst_float = value_socket->default_value; dst_float->value = src_float->value; break; default: @@ -337,10 +337,11 @@ static bool ntree_shader_expand_socket_default(bNodeTree *localtree, static void ntree_shader_unlink_hidden_value_sockets(bNode *group_node, bNodeSocket *isock) { bNodeTree *group_ntree = (bNodeTree *)group_node->id; + bNode *node; bool removed_link = false; - LISTBASE_FOREACH (bNode *, node, &group_ntree->nodes) { - const bool is_group = ELEM(node->type, NODE_GROUP, NODE_CUSTOM_GROUP) && (node->id != nullptr); + for (node = group_ntree->nodes.first; node; node = node->next) { + const bool is_group = ELEM(node->type, NODE_GROUP, NODE_CUSTOM_GROUP) && (node->id != NULL); LISTBASE_FOREACH (bNodeSocket *, sock, &node->inputs) { if (!is_group && (sock->flag & SOCK_HIDE_VALUE) == 0) { @@ -374,7 +375,7 @@ static void ntree_shader_groups_expand_inputs(bNodeTree *localtree) bool link_added = false; LISTBASE_FOREACH (bNode *, node, &localtree->nodes) { - const bool is_group = ELEM(node->type, NODE_GROUP, NODE_CUSTOM_GROUP) && (node->id != nullptr); + const bool is_group = ELEM(node->type, NODE_GROUP, NODE_CUSTOM_GROUP) && (node->id != NULL); const bool is_group_output = node->type == NODE_GROUP_OUTPUT && (node->flag & NODE_DO_OUTPUT); if (is_group) { @@ -384,30 +385,25 @@ static void ntree_shader_groups_expand_inputs(bNodeTree *localtree) if (is_group || is_group_output) { LISTBASE_FOREACH (bNodeSocket *, socket, &node->inputs) { - if (socket->link != nullptr && !(socket->link->flag & NODE_LINK_MUTED)) { + if (socket->link != NULL && !(socket->link->flag & NODE_LINK_MUTED)) { bNodeLink *link = socket->link; /* Fix the case where the socket is actually converting the data. (see T71374) * We only do the case of lossy conversion to float. */ if ((socket->type == SOCK_FLOAT) && (link->fromsock->type != link->tosock->type)) { if (link->fromsock->type == SOCK_RGBA) { - bNode *tmp = nodeAddStaticNode(nullptr, localtree, SH_NODE_RGBTOBW); - nodeAddLink(localtree, - link->fromnode, - link->fromsock, - tmp, - (bNodeSocket *)tmp->inputs.first); - nodeAddLink(localtree, tmp, (bNodeSocket *)tmp->outputs.first, node, socket); + bNode *tmp = nodeAddStaticNode(NULL, localtree, SH_NODE_RGBTOBW); + nodeAddLink(localtree, link->fromnode, link->fromsock, tmp, tmp->inputs.first); + nodeAddLink(localtree, tmp, tmp->outputs.first, node, socket); } else if (link->fromsock->type == SOCK_VECTOR) { - bNode *tmp = nodeAddStaticNode(nullptr, localtree, SH_NODE_VECTOR_MATH); + bNode *tmp = nodeAddStaticNode(NULL, localtree, SH_NODE_VECTOR_MATH); tmp->custom1 = NODE_VECTOR_MATH_DOT_PRODUCT; - bNodeSocket *dot_input1 = (bNodeSocket *)tmp->inputs.first; + bNodeSocket *dot_input1 = tmp->inputs.first; bNodeSocket *dot_input2 = dot_input1->next; - bNodeSocketValueVector *input2_socket_value = (bNodeSocketValueVector *) - dot_input2->default_value; + bNodeSocketValueVector *input2_socket_value = dot_input2->default_value; copy_v3_fl(input2_socket_value->value, 1.0f / 3.0f); nodeAddLink(localtree, link->fromnode, link->fromsock, tmp, dot_input1); - nodeAddLink(localtree, tmp, (bNodeSocket *)tmp->outputs.last, node, socket); + nodeAddLink(localtree, tmp, tmp->outputs.last, node, socket); } } continue; @@ -433,15 +429,15 @@ static void ntree_shader_groups_expand_inputs(bNodeTree *localtree) static void flatten_group_do(bNodeTree *ntree, bNode *gnode) { - bNodeLink *link, *tlink; + bNodeLink *link, *linkn, *tlink; bNode *node, *nextnode; bNodeTree *ngroup; - LinkNode *group_interface_nodes = nullptr; + LinkNode *group_interface_nodes = NULL; ngroup = (bNodeTree *)gnode->id; /* Add the nodes into the ntree */ - for (node = (bNode *)ngroup->nodes.first; node; node = nextnode) { + for (node = ngroup->nodes.first; node; node = nextnode) { nextnode = node->next; /* Remove interface nodes. * This also removes remaining links to and from interface nodes. @@ -458,25 +454,25 @@ static void flatten_group_do(bNodeTree *ntree, bNode *gnode) } /* Save first and last link to iterate over flattened group links. */ - bNodeLink *glinks_first = (bNodeLink *)ntree->links.last; + bNodeLink *glinks_first = ntree->links.last; /* Add internal links to the ntree */ - LISTBASE_FOREACH (bNodeLink *, link, &ngroup->links) { + for (link = ngroup->links.first; link; link = linkn) { + linkn = link->next; BLI_remlink(&ngroup->links, link); BLI_addtail(&ntree->links, link); } - bNodeLink *glinks_last = (bNodeLink *)ntree->links.last; + bNodeLink *glinks_last = ntree->links.last; /* restore external links to and from the gnode */ - if (glinks_first != nullptr) { + if (glinks_first != NULL) { /* input links */ for (link = glinks_first->next; link != glinks_last->next; link = link->next) { if (link->fromnode->type == NODE_GROUP_INPUT) { const char *identifier = link->fromsock->identifier; /* find external links to this input */ - for (tlink = (bNodeLink *)ntree->links.first; tlink != glinks_first->next; - tlink = tlink->next) { + for (tlink = ntree->links.first; tlink != glinks_first->next; tlink = tlink->next) { if (tlink->tonode == gnode && STREQ(tlink->tosock->identifier, identifier)) { nodeAddLink(ntree, tlink->fromnode, tlink->fromsock, link->tonode, link->tosock); } @@ -484,10 +480,9 @@ static void flatten_group_do(bNodeTree *ntree, bNode *gnode) } } /* Also iterate over the new links to cover passthrough links. */ - glinks_last = (bNodeLink *)ntree->links.last; + glinks_last = ntree->links.last; /* output links */ - for (tlink = (bNodeLink *)ntree->links.first; tlink != glinks_first->next; - tlink = tlink->next) { + for (tlink = ntree->links.first; tlink != glinks_first->next; tlink = tlink->next) { if (tlink->fromnode == gnode) { const char *identifier = tlink->fromsock->identifier; /* find internal links to this output */ @@ -504,7 +499,7 @@ static void flatten_group_do(bNodeTree *ntree, bNode *gnode) } while (group_interface_nodes) { - node = (bNode *)BLI_linklist_pop(&group_interface_nodes); + node = BLI_linklist_pop(&group_interface_nodes); ntreeFreeLocalNode(ntree, node); } @@ -516,8 +511,8 @@ static void ntree_shader_groups_flatten(bNodeTree *localtree) { /* This is effectively recursive as the flattened groups will add * nodes at the end of the list, which will also get evaluated. */ - for (bNode *node = (bNode *)localtree->nodes.first, *node_next; node; node = node_next) { - if (ELEM(node->type, NODE_GROUP, NODE_CUSTOM_GROUP) && node->id != nullptr) { + for (bNode *node = localtree->nodes.first, *node_next; node; node = node_next) { + if (ELEM(node->type, NODE_GROUP, NODE_CUSTOM_GROUP) && node->id != NULL) { flatten_group_do(localtree, node); /* Continue even on new flattened nodes. */ node_next = node->next; @@ -548,7 +543,7 @@ static bool ntree_shader_has_displacement(bNodeTree *ntree, bNodeSocket **r_socket, bNodeLink **r_link) { - if (output_node == nullptr) { + if (output_node == NULL) { /* We can't have displacement without output node, apparently. */ return false; } @@ -556,12 +551,12 @@ static bool ntree_shader_has_displacement(bNodeTree *ntree, ntreeUpdateTree(G.main, ntree); bNodeSocket *displacement = ntree_shader_node_find_input(output_node, "Displacement"); - if (displacement == nullptr) { + if (displacement == NULL) { /* Non-cycles node is used as an output. */ return false; } - if ((displacement->link != nullptr) && !(displacement->link->flag & NODE_LINK_MUTED)) { + if ((displacement->link != NULL) && !(displacement->link->flag & NODE_LINK_MUTED)) { *r_node = displacement->link->fromnode; *r_socket = displacement->link->fromsock; *r_link = displacement->link; @@ -579,7 +574,7 @@ static void ntree_shader_relink_node_normal(bNodeTree *ntree, * matching? */ LISTBASE_FOREACH (bNodeSocket *, sock, &node->inputs) { - if (STREQ(sock->identifier, "Normal") && sock->link == nullptr) { + if (STREQ(sock->identifier, "Normal") && sock->link == NULL) { /* It's a normal input and nothing is connected to it. */ nodeAddLink(ntree, node_from, socket_from, node, sock); } @@ -599,7 +594,7 @@ static void ntree_shader_link_builtin_normal(bNodeTree *ntree, bNode *node_from, bNodeSocket *socket_from) { - LISTBASE_FOREACH (bNode *, node, &ntree->nodes) { + for (bNode *node = ntree->nodes.first; node != NULL; node = node->next) { if (node == node_from) { /* Don't connect node itself! */ continue; @@ -624,7 +619,7 @@ static void ntree_shader_bypass_bump_link(bNodeTree *ntree, bNode *bump_node, bN fromnode = bump_normal_input->link->fromnode; } else { - fromnode = nodeAddStaticNode(nullptr, ntree, SH_NODE_NEW_GEOMETRY); + fromnode = nodeAddStaticNode(NULL, ntree, SH_NODE_NEW_GEOMETRY); fromsock = ntree_shader_node_find_output(fromnode, "Normal"); } /* Bypass the bump node by creating a link between the previous and next node. */ @@ -676,7 +671,7 @@ static bNode *ntree_shader_copy_branch(bNodeTree *ntree, int node_count = 1; nodeChainIterBackwards(ntree, start_node, ntree_branch_count_and_tag_nodes, &node_count, 1); /* Make a full copy of the branch */ - bNode **nodes_copy = (bNode **)MEM_mallocN(sizeof(bNode *) * node_count, __func__); + bNode **nodes_copy = MEM_mallocN(sizeof(bNode *) * node_count, __func__); LISTBASE_FOREACH (bNode *, node, &ntree->nodes) { if (node->tmp_flag >= 0) { int id = node->tmp_flag; @@ -685,10 +680,10 @@ static bNode *ntree_shader_copy_branch(bNodeTree *ntree, nodes_copy[id]->tmp_flag = -2; /* Copy */ /* Make sure to clear all sockets links as they are invalid. */ LISTBASE_FOREACH (bNodeSocket *, sock, &nodes_copy[id]->inputs) { - sock->link = nullptr; + sock->link = NULL; } LISTBASE_FOREACH (bNodeSocket *, sock, &nodes_copy[id]->outputs) { - sock->link = nullptr; + sock->link = NULL; } } } @@ -721,7 +716,7 @@ static void ntree_shader_copy_branch_displacement(bNodeTree *ntree, /* Replace displacement socket/node/link. */ bNode *tonode = displacement_link->tonode; bNodeSocket *tosock = displacement_link->tosock; - displacement_node = ntree_shader_copy_branch(ntree, displacement_node, nullptr, 0); + displacement_node = ntree_shader_copy_branch(ntree, displacement_node, NULL, 0); displacement_socket = ntree_shader_node_find_output(displacement_node, displacement_socket->identifier); nodeRemLink(ntree, displacement_link); @@ -761,10 +756,10 @@ static void ntree_shader_relink_displacement(bNodeTree *ntree, bNode *output_nod nodeRemLink(ntree, displacement_link); /* Convert displacement vector to bump height. */ - bNode *dot_node = nodeAddStaticNode(nullptr, ntree, SH_NODE_VECTOR_MATH); - bNode *geo_node = nodeAddStaticNode(nullptr, ntree, SH_NODE_NEW_GEOMETRY); + bNode *dot_node = nodeAddStaticNode(NULL, ntree, SH_NODE_VECTOR_MATH); + bNode *geo_node = nodeAddStaticNode(NULL, ntree, SH_NODE_NEW_GEOMETRY); bNodeSocket *normal_socket = ntree_shader_node_find_output(geo_node, "Normal"); - bNodeSocket *dot_input1 = (bNodeSocket *)dot_node->inputs.first; + bNodeSocket *dot_input1 = dot_node->inputs.first; bNodeSocket *dot_input2 = dot_input1->next; dot_node->custom1 = NODE_VECTOR_MATH_DOT_PRODUCT; @@ -776,11 +771,11 @@ static void ntree_shader_relink_displacement(bNodeTree *ntree, bNode *output_nod /* We can't connect displacement to normal directly, use bump node for that * and hope that it gives good enough approximation. */ - bNode *bump_node = nodeAddStaticNode(nullptr, ntree, SH_NODE_BUMP); + bNode *bump_node = nodeAddStaticNode(NULL, ntree, SH_NODE_BUMP); bNodeSocket *bump_input_socket = ntree_shader_node_find_input(bump_node, "Height"); bNodeSocket *bump_output_socket = ntree_shader_node_find_output(bump_node, "Normal"); - BLI_assert(bump_input_socket != nullptr); - BLI_assert(bump_output_socket != nullptr); + BLI_assert(bump_input_socket != NULL); + BLI_assert(bump_output_socket != NULL); /* Connect bump node to where displacement output was originally * connected to. */ @@ -872,7 +867,7 @@ static bool ntree_tag_bsdf_cb(bNode *fromnode, bNode *UNUSED(tonode), void *user */ void ntree_shader_tag_nodes(bNodeTree *ntree, bNode *output_node, nTreeTags *tags) { - if (output_node == nullptr) { + if (output_node == NULL) { return; } /* Make sure sockets links pointers are correct. */ @@ -894,7 +889,7 @@ void ntreeGPUMaterialNodes(bNodeTree *localtree, ntree_shader_groups_flatten(localtree); - if (output == nullptr) { + if (output == NULL) { /* Search again, now including flattened nodes. */ output = ntreeShaderOutputNode(localtree, SHD_OUTPUT_EEVEE); } @@ -910,13 +905,19 @@ void ntreeGPUMaterialNodes(bNodeTree *localtree, LISTBASE_FOREACH (bNode *, node, &localtree->nodes) { if (node->type == SH_NODE_OUTPUT_AOV) { nodeChainIterBackwards(localtree, node, ntree_shader_bump_branches, localtree, 0); - nTreeTags tags = {1.0, 1.0}; + nTreeTags tags = { + .ssr_id = 1.0, + .sss_id = 1.0, + }; ntree_shader_tag_nodes(localtree, node, &tags); } } /* TODO(fclem): consider moving this to the gpu shader tree evaluation. */ - nTreeTags tags = {1.0, 1.0}; + nTreeTags tags = { + .ssr_id = 1.0, + .sss_id = 1.0, + }; ntree_shader_tag_nodes(localtree, output, &tags); exec = ntreeShaderBeginExecTree(localtree); @@ -932,15 +933,15 @@ void ntreeGPUMaterialNodes(bNodeTree *localtree, *has_surface_output = false; *has_volume_output = false; - if (output != nullptr) { + if (output != NULL) { bNodeSocket *surface_sock = ntree_shader_node_find_input(output, "Surface"); bNodeSocket *volume_sock = ntree_shader_node_find_input(output, "Volume"); - if (surface_sock != nullptr) { + if (surface_sock != NULL) { *has_surface_output = (nodeCountSocketLinks(localtree, surface_sock) > 0); } - if (volume_sock != nullptr) { + if (volume_sock != NULL) { *has_volume_output = (nodeCountSocketLinks(localtree, volume_sock) > 0); } } @@ -950,17 +951,19 @@ bNodeTreeExec *ntreeShaderBeginExecTree_internal(bNodeExecContext *context, bNodeTree *ntree, bNodeInstanceKey parent_key) { + bNodeTreeExec *exec; + bNode *node; + /* ensures only a single output node is enabled */ ntreeSetOutput(ntree); /* common base initialization */ - bNodeTreeExec *exec = ntree_exec_begin(context, ntree, parent_key); + exec = ntree_exec_begin(context, ntree, parent_key); /* allocate the thread stack listbase array */ - exec->threadstack = (ListBase *)MEM_callocN(BLENDER_MAX_THREADS * sizeof(ListBase), - "thread stack array"); + exec->threadstack = MEM_callocN(BLENDER_MAX_THREADS * sizeof(ListBase), "thread stack array"); - LISTBASE_FOREACH (bNode *, node, &exec->nodetree->nodes) { + for (node = exec->nodetree->nodes.first; node; node = node->next) { node->need_exec = 1; } @@ -993,9 +996,12 @@ bNodeTreeExec *ntreeShaderBeginExecTree(bNodeTree *ntree) void ntreeShaderEndExecTree_internal(bNodeTreeExec *exec) { + bNodeThreadStack *nts; + int a; + if (exec->threadstack) { - for (int a = 0; a < BLENDER_MAX_THREADS; a++) { - LISTBASE_FOREACH (bNodeThreadStack *, nts, &exec->threadstack[a]) { + for (a = 0; a < BLENDER_MAX_THREADS; a++) { + for (nts = exec->threadstack[a].first; nts; nts = nts->next) { if (nts->stack) { MEM_freeN(nts->stack); } @@ -1004,7 +1010,7 @@ void ntreeShaderEndExecTree_internal(bNodeTreeExec *exec) } MEM_freeN(exec->threadstack); - exec->threadstack = nullptr; + exec->threadstack = NULL; } ntree_exec_end(exec); @@ -1018,6 +1024,6 @@ void ntreeShaderEndExecTree(bNodeTreeExec *exec) ntreeShaderEndExecTree_internal(exec); /* XXX clear nodetree backpointer to exec data, same problem as noted in ntreeBeginExecTree */ - ntree->execdata = nullptr; + ntree->execdata = NULL; } } diff --git a/source/blender/nodes/shader/node_shader_util.cc b/source/blender/nodes/shader/node_shader_util.cc index 077e12e2cff..8b7e72fbcc9 100644 --- a/source/blender/nodes/shader/node_shader_util.cc +++ b/source/blender/nodes/shader/node_shader_util.cc @@ -23,7 +23,7 @@ #include "DNA_node_types.h" -#include "node_shader_util.hh" +#include "node_shader_util.h" #include "node_exec.h" diff --git a/source/blender/nodes/shader/node_shader_util.hh b/source/blender/nodes/shader/node_shader_util.h index 5edc6653c68..c647b86a19a 100644 --- a/source/blender/nodes/shader/node_shader_util.hh +++ b/source/blender/nodes/shader/node_shader_util.h @@ -39,8 +39,8 @@ #include "DNA_scene_types.h" #include "DNA_texture_types.h" -#include "BLI_color.hh" -#include "BLI_float3.hh" +#include "BLI_blenlib.h" +#include "BLI_math.h" #include "BLI_math_base_safe.h" #include "BLI_rand.h" #include "BLI_threads.h" @@ -55,9 +55,7 @@ #include "BKE_node.h" #include "BKE_texture.h" -#include "NOD_multi_function.hh" #include "NOD_shader.h" -#include "NOD_socket_declarations.hh" #include "node_util.h" #include "BLT_translation.h" @@ -67,12 +65,22 @@ #include "RE_pipeline.h" #include "RE_texture.h" -#include "FN_multi_function_builder.hh" - #include "GPU_material.h" #include "GPU_texture.h" #include "GPU_uniform_buffer.h" +#ifdef __cplusplus +# include "FN_multi_function_builder.hh" + +# include "NOD_multi_function.hh" +# include "NOD_socket_declarations.hh" + +# include "BLI_color.hh" +# include "BLI_float3.hh" + +extern "C" { +#endif + bool sh_node_poll_default(struct bNodeType *ntype, struct bNodeTree *ntree, const char **r_disabled_hint); @@ -112,3 +120,7 @@ void ntreeExecGPUNodes(struct bNodeTreeExec *exec, struct GPUMaterial *mat, struct bNode *output_node); void get_XYZ_to_RGB_for_gpu(XYZ_to_RGB *data); + +#ifdef __cplusplus +} +#endif diff --git a/source/blender/nodes/shader/nodes/node_shader_add_shader.cc b/source/blender/nodes/shader/nodes/node_shader_add_shader.c index 81c7643e18b..12c138ac9d5 100644 --- a/source/blender/nodes/shader/nodes/node_shader_add_shader.cc +++ b/source/blender/nodes/shader/nodes/node_shader_add_shader.c @@ -17,18 +17,20 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_add_shader_cc { +static bNodeSocketTemplate sh_node_add_shader_in[] = { + {SOCK_SHADER, N_("Shader")}, + {SOCK_SHADER, N_("Shader")}, + {-1, ""}, +}; -static void node_declare(NodeDeclarationBuilder &b) -{ - b.add_input<decl::Shader>(N_("Shader")); - b.add_input<decl::Shader>(N_("Shader"), "Shader_001"); - b.add_output<decl::Shader>(N_("Shader")); -} +static bNodeSocketTemplate sh_node_add_shader_out[] = { + {SOCK_SHADER, N_("Shader")}, + {-1, ""}, +}; static int node_shader_gpu_add_shader(GPUMaterial *mat, bNode *node, @@ -39,20 +41,16 @@ static int node_shader_gpu_add_shader(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_add_shader", in, out); } -} // namespace blender::nodes::node_shader_add_shader_cc - /* node type definition */ -void register_node_type_sh_add_shader() +void register_node_type_sh_add_shader(void) { - namespace file_ns = blender::nodes::node_shader_add_shader_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_ADD_SHADER, "Add Shader", NODE_CLASS_SHADER, 0); - ntype.declare = file_ns::node_declare; - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_add_shader); + node_type_socket_templates(&ntype, sh_node_add_shader_in, sh_node_add_shader_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_add_shader); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.cc b/source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.c index cf201aab7d8..abe80ebcefb 100644 --- a/source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.cc +++ b/source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.c @@ -17,12 +17,10 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_ambient_occlusion_cc { - static bNodeSocketTemplate sh_node_ambient_occlusion_in[] = { {SOCK_RGBA, N_("Color"), 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f}, {SOCK_FLOAT, N_("Distance"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, @@ -66,21 +64,16 @@ 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 register_node_type_sh_ambient_occlusion(void) { - 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, 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_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_ambient_occlusion); + 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_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_ambient_occlusion); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_attribute.cc b/source/blender/nodes/shader/nodes/node_shader_attribute.c index 068d1266caa..9b3122e38e0 100644 --- a/source/blender/nodes/shader/nodes/node_shader_attribute.cc +++ b/source/blender/nodes/shader/nodes/node_shader_attribute.c @@ -17,12 +17,10 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_attribute_cc { - static bNodeSocketTemplate sh_node_attribute_out[] = { {SOCK_RGBA, N_("Color")}, {SOCK_VECTOR, N_("Vector"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, @@ -33,8 +31,7 @@ static bNodeSocketTemplate sh_node_attribute_out[] = { static void node_shader_init_attribute(bNodeTree *UNUSED(ntree), bNode *node) { - NodeShaderAttribute *attr = (NodeShaderAttribute *)MEM_callocN(sizeof(NodeShaderAttribute), - "NodeShaderAttribute"); + NodeShaderAttribute *attr = MEM_callocN(sizeof(NodeShaderAttribute), "NodeShaderAttribute"); node->storage = attr; } @@ -44,7 +41,7 @@ static int node_shader_gpu_attribute(GPUMaterial *mat, GPUNodeStack *in, GPUNodeStack *out) { - NodeShaderAttribute *attr = (NodeShaderAttribute *)node->storage; + NodeShaderAttribute *attr = node->storage; bool is_varying = attr->type == SHD_ATTRIBUTE_GEOMETRY; if (GPU_material_is_volume_shader(mat) && is_varying) { @@ -84,21 +81,17 @@ 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 register_node_type_sh_attribute(void) { - 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, nullptr, file_ns::sh_node_attribute_out); - node_type_init(&ntype, file_ns::node_shader_init_attribute); + node_type_socket_templates(&ntype, NULL, sh_node_attribute_out); + node_type_init(&ntype, node_shader_init_attribute); node_type_storage( &ntype, "NodeShaderAttribute", node_free_standard_storage, node_copy_standard_storage); - node_type_gpu(&ntype, file_ns::node_shader_gpu_attribute); + node_type_gpu(&ntype, node_shader_gpu_attribute); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_background.cc b/source/blender/nodes/shader/nodes/node_shader_background.c index 68ff2a3fb40..5281a9fecb1 100644 --- a/source/blender/nodes/shader/nodes/node_shader_background.cc +++ b/source/blender/nodes/shader/nodes/node_shader_background.c @@ -17,12 +17,10 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_background_cc { - static bNodeSocketTemplate sh_node_background_in[] = { {SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, {SOCK_FLOAT, N_("Strength"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000000.0f}, @@ -43,21 +41,16 @@ 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 register_node_type_sh_background(void) { - 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, file_ns::sh_node_background_in, file_ns::sh_node_background_out); - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_background); + node_type_socket_templates(&ntype, sh_node_background_in, sh_node_background_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_background); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_bevel.cc b/source/blender/nodes/shader/nodes/node_shader_bevel.c index f34e9e99f37..347d82c5506 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bevel.cc +++ b/source/blender/nodes/shader/nodes/node_shader_bevel.c @@ -17,12 +17,10 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_bevel_cc { - static bNodeSocketTemplate sh_node_bevel_in[] = { {SOCK_FLOAT, N_("Radius"), 0.05f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, {SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, @@ -56,20 +54,16 @@ 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 register_node_type_sh_bevel(void) { - 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, file_ns::sh_node_bevel_in, file_ns::sh_node_bevel_out); - node_type_init(&ntype, file_ns::node_shader_init_bevel); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::gpu_shader_bevel); + node_type_socket_templates(&ntype, sh_node_bevel_in, sh_node_bevel_out); + node_type_init(&ntype, node_shader_init_bevel); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, gpu_shader_bevel); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_blackbody.cc b/source/blender/nodes/shader/nodes/node_shader_blackbody.c index de5bf98fd79..95c35affc27 100644 --- a/source/blender/nodes/shader/nodes/node_shader_blackbody.cc +++ b/source/blender/nodes/shader/nodes/node_shader_blackbody.c @@ -17,12 +17,9 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** Blackbody ******************** */ - -namespace blender::nodes::node_shader_blackbody_cc { - static bNodeSocketTemplate sh_node_blackbody_in[] = { {SOCK_FLOAT, N_("Temperature"), 1500.0f, 0.0f, 0.0f, 0.0f, 800.0f, 12000.0f}, {-1, ""}, @@ -40,7 +37,7 @@ static int node_shader_gpu_blackbody(GPUMaterial *mat, GPUNodeStack *out) { const int size = CM_TABLE + 1; - float *data = (float *)MEM_mallocN(sizeof(float) * size * 4, "blackbody texture"); + float *data = MEM_mallocN(sizeof(float) * size * 4, "blackbody texture"); blackbody_temperature_to_rgb_table(data, size, 965.0f, 12000.0f); @@ -50,22 +47,17 @@ static int node_shader_gpu_blackbody(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_blackbody", in, out, ramp_texture, GPU_constant(&layer)); } -} // namespace blender::nodes::node_shader_blackbody_cc - /* node type definition */ -void register_node_type_sh_blackbody() +void register_node_type_sh_blackbody(void) { - namespace file_ns = blender::nodes::node_shader_blackbody_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_BLACKBODY, "Blackbody", NODE_CLASS_CONVERTER, 0); node_type_size_preset(&ntype, NODE_SIZE_MIDDLE); - node_type_socket_templates( - &ntype, file_ns::sh_node_blackbody_in, file_ns::sh_node_blackbody_out); - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_blackbody); + node_type_socket_templates(&ntype, sh_node_blackbody_in, sh_node_blackbody_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_blackbody); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_brightness.cc b/source/blender/nodes/shader/nodes/node_shader_brightness.c index 3e76a2cb0b1..4f375c666de 100644 --- a/source/blender/nodes/shader/nodes/node_shader_brightness.cc +++ b/source/blender/nodes/shader/nodes/node_shader_brightness.c @@ -17,12 +17,10 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "node_shader_util.h" /* **************** Bright and contrast ******************** */ -namespace blender::nodes::node_shader_brightness_cc { - static bNodeSocketTemplate sh_node_brightcontrast_in[] = { {SOCK_RGBA, N_("Color"), 1.0f, 1.0f, 1.0f, 1.0f}, {SOCK_FLOAT, N_("Bright"), 0.0f, 0.0f, 0.0f, 0.0f, -100.0f, 100.0f, PROP_NONE}, @@ -44,20 +42,15 @@ static int gpu_shader_brightcontrast(GPUMaterial *mat, return GPU_stack_link(mat, node, "brightness_contrast", in, out); } -} // namespace blender::nodes::node_shader_brightness_cc - -void register_node_type_sh_brightcontrast() +void register_node_type_sh_brightcontrast(void) { - namespace file_ns = blender::nodes::node_shader_brightness_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_BRIGHTCONTRAST, "Bright/Contrast", NODE_CLASS_OP_COLOR, 0); - node_type_socket_templates( - &ntype, file_ns::sh_node_brightcontrast_in, file_ns::sh_node_brightcontrast_out); - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::gpu_shader_brightcontrast); + node_type_socket_templates(&ntype, sh_node_brightcontrast_in, sh_node_brightcontrast_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, gpu_shader_brightcontrast); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.cc b/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c index 9fac8d70e9d..499f62da683 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.cc +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c @@ -17,26 +17,24 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_anisotropic_cc { +static bNodeSocketTemplate sh_node_bsdf_anisotropic_in[] = { + {SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + {SOCK_FLOAT, N_("Roughness"), 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("Anisotropy"), 0.5f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f}, + {SOCK_FLOAT, N_("Rotation"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + {SOCK_VECTOR, N_("Tangent"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + {-1, ""}, +}; -static void node_declare(NodeDeclarationBuilder &b) -{ - b.add_input<decl::Color>(N_("Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f}); - b.add_input<decl::Float>(N_("Roughness")) - .default_value(0.5f) - .min(0.0f) - .max(1.0f) - .subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("Anisotropy")).default_value(0.5f).min(-1.0f).max(1.0f); - b.add_input<decl::Float>(N_("Rotation")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Vector>(N_("Normal")).min(-1.0f).max(1.0f).hide_value(); - b.add_input<decl::Vector>(N_("Tangent")).min(-1.0f).max(1.0f).hide_value(); - b.add_output<decl::Shader>(N_("BSDF")); -} +static bNodeSocketTemplate sh_node_bsdf_anisotropic_out[] = { + {SOCK_SHADER, N_("BSDF")}, + {-1, ""}, +}; static void node_shader_init_anisotropic(bNodeTree *UNUSED(ntree), bNode *node) { @@ -66,21 +64,17 @@ static int node_shader_gpu_bsdf_anisotropic(GPUMaterial *mat, GPU_constant(&node->ssr_id)); } -} // namespace blender::nodes::node_shader_anisotropic_cc - /* node type definition */ -void register_node_type_sh_bsdf_anisotropic() +void register_node_type_sh_bsdf_anisotropic(void) { - namespace file_ns = blender::nodes::node_shader_anisotropic_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_BSDF_ANISOTROPIC, "Anisotropic BSDF", NODE_CLASS_SHADER, 0); - ntype.declare = file_ns::node_declare; + node_type_socket_templates(&ntype, sh_node_bsdf_anisotropic_in, sh_node_bsdf_anisotropic_out); node_type_size_preset(&ntype, NODE_SIZE_MIDDLE); - node_type_init(&ntype, file_ns::node_shader_init_anisotropic); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_anisotropic); + node_type_init(&ntype, node_shader_init_anisotropic); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_anisotropic); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.cc b/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c index c3ec80a4cf9..f4f1d274826 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.cc +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c @@ -17,19 +17,21 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_bsdf_diffuse_cc { +static bNodeSocketTemplate sh_node_bsdf_diffuse_in[] = { + {SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + {SOCK_FLOAT, N_("Roughness"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + {-1, ""}, +}; -static void node_declare(NodeDeclarationBuilder &b) -{ - b.add_input<decl::Color>(N_("Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f}); - b.add_input<decl::Float>(N_("Roughness")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Vector>(N_("Normal")).min(-1.0f).max(1.0f).hide_value(); - b.add_output<decl::Shader>(N_("BSDF")); -} +static bNodeSocketTemplate sh_node_bsdf_diffuse_out[] = { + {SOCK_SHADER, N_("BSDF")}, + {-1, ""}, +}; static int node_shader_gpu_bsdf_diffuse(GPUMaterial *mat, bNode *node, @@ -46,21 +48,17 @@ static int node_shader_gpu_bsdf_diffuse(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_bsdf_diffuse", in, out); } -} // namespace blender::nodes::node_shader_bsdf_diffuse_cc - /* node type definition */ -void register_node_type_sh_bsdf_diffuse() +void register_node_type_sh_bsdf_diffuse(void) { - namespace file_ns = blender::nodes::node_shader_bsdf_diffuse_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_BSDF_DIFFUSE, "Diffuse BSDF", NODE_CLASS_SHADER, 0); - ntype.declare = file_ns::node_declare; + node_type_socket_templates(&ntype, sh_node_bsdf_diffuse_in, sh_node_bsdf_diffuse_out); node_type_size_preset(&ntype, NODE_SIZE_MIDDLE); - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_diffuse); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_diffuse); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_glass.cc b/source/blender/nodes/shader/nodes/node_shader_bsdf_glass.c index 840d7e68dbc..5fc946e3509 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_glass.cc +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_glass.c @@ -17,20 +17,22 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_bsdf_glass_cc { +static bNodeSocketTemplate sh_node_bsdf_glass_in[] = { + {SOCK_RGBA, N_("Color"), 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f}, + {SOCK_FLOAT, N_("Roughness"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("IOR"), 1.45f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + {SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + {-1, ""}, +}; -static void node_declare(NodeDeclarationBuilder &b) -{ - b.add_input<decl::Color>(N_("Color")).default_value({1.0f, 1.0f, 1.0f, 1.0f}); - b.add_input<decl::Float>(N_("Roughness")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("IOR")).default_value(1.45f).min(0.0f).max(1000.0f); - b.add_input<decl::Vector>(N_("Normal")).min(-1.0f).max(1.0f).hide_value(); - b.add_output<decl::Shader>(N_("BSDF")); -} +static bNodeSocketTemplate sh_node_bsdf_glass_out[] = { + {SOCK_SHADER, N_("BSDF")}, + {-1, ""}, +}; static void node_shader_init_glass(bNodeTree *UNUSED(ntree), bNode *node) { @@ -51,7 +53,7 @@ static int node_shader_gpu_bsdf_glass(GPUMaterial *mat, GPU_link(mat, "set_value_zero", &in[1].link); } - GPU_material_flag_set(mat, (eGPUMatFlag)(GPU_MATFLAG_GLOSSY | GPU_MATFLAG_REFRACT)); + GPU_material_flag_set(mat, GPU_MATFLAG_GLOSSY | GPU_MATFLAG_REFRACT); float use_multi_scatter = (node->custom1 == SHD_GLOSSY_MULTI_GGX) ? 1.0f : 0.0f; @@ -64,21 +66,17 @@ static int node_shader_gpu_bsdf_glass(GPUMaterial *mat, GPU_constant(&node->ssr_id)); } -} // namespace blender::nodes::node_shader_bsdf_glass_cc - /* node type definition */ -void register_node_type_sh_bsdf_glass() +void register_node_type_sh_bsdf_glass(void) { - namespace file_ns = blender::nodes::node_shader_bsdf_glass_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_BSDF_GLASS, "Glass BSDF", NODE_CLASS_SHADER, 0); - ntype.declare = file_ns::node_declare; + node_type_socket_templates(&ntype, sh_node_bsdf_glass_in, sh_node_bsdf_glass_out); node_type_size_preset(&ntype, NODE_SIZE_MIDDLE); - node_type_init(&ntype, file_ns::node_shader_init_glass); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_glass); + node_type_init(&ntype, node_shader_init_glass); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_glass); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.cc b/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c index 0090096fd42..13b1b21c7fc 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.cc +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c @@ -17,23 +17,21 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_bsdf_glossy_cc { +static bNodeSocketTemplate sh_node_bsdf_glossy_in[] = { + {SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + {SOCK_FLOAT, N_("Roughness"), 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + {-1, ""}, +}; -static void node_declare(NodeDeclarationBuilder &b) -{ - b.add_input<decl::Color>(N_("Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f}); - b.add_input<decl::Float>(N_("Roughness")) - .default_value(0.5) - .min(0.0f) - .max(1.0f) - .subtype(PROP_FACTOR); - b.add_input<decl::Vector>(N_("Normal")).min(-1.0f).max(1.0f).hide_value(); - b.add_output<decl::Shader>(N_("BSDF")); -} +static bNodeSocketTemplate sh_node_bsdf_glossy_out[] = { + {SOCK_SHADER, N_("BSDF")}, + {-1, ""}, +}; static void node_shader_init_glossy(bNodeTree *UNUSED(ntree), bNode *node) { @@ -67,21 +65,17 @@ static int node_shader_gpu_bsdf_glossy(GPUMaterial *mat, GPU_constant(&node->ssr_id)); } -} // namespace blender::nodes::node_shader_bsdf_glossy_cc - /* node type definition */ -void register_node_type_sh_bsdf_glossy() +void register_node_type_sh_bsdf_glossy(void) { - namespace file_ns = blender::nodes::node_shader_bsdf_glossy_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_BSDF_GLOSSY, "Glossy BSDF", NODE_CLASS_SHADER, 0); - ntype.declare = file_ns::node_declare; + node_type_socket_templates(&ntype, sh_node_bsdf_glossy_in, sh_node_bsdf_glossy_out); node_type_size_preset(&ntype, NODE_SIZE_MIDDLE); - node_type_init(&ntype, file_ns::node_shader_init_glossy); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_glossy); + node_type_init(&ntype, node_shader_init_glossy); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_glossy); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_hair.cc b/source/blender/nodes/shader/nodes/node_shader_bsdf_hair.c index 0bb0e886a7c..fb2decec5f4 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_hair.cc +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_hair.c @@ -17,29 +17,23 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_bsdf_hair_cc { +static bNodeSocketTemplate sh_node_bsdf_hair_in[] = { + {SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + {SOCK_FLOAT, N_("Offset"), 0.0f, 0.0f, 0.0f, 0.0f, -M_PI_2, M_PI_2, PROP_ANGLE}, + {SOCK_FLOAT, N_("RoughnessU"), 0.1f, 0.1f, 0.1f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("RoughnessV"), 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_VECTOR, N_("Tangent"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + {-1, ""}, +}; -static void node_declare(NodeDeclarationBuilder &b) -{ - b.add_input<decl::Color>(N_("Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f}); - b.add_input<decl::Float>(N_("Offset")).min(-M_PI_2).max(M_PI_2).subtype(PROP_ANGLE); - b.add_input<decl::Float>(N_("RoughnessU")) - .default_value(0.1f) - .min(0.0f) - .max(1.0f) - .subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("RoughnessV")) - .default_value(1.0f) - .min(0.0f) - .max(1.0f) - .subtype(PROP_FACTOR); - b.add_input<decl::Vector>(N_("Tangent")).min(-1.0f).max(1.0f).hide_value(); - b.add_output<decl::Shader>(N_("BSDF")); -} +static bNodeSocketTemplate sh_node_bsdf_hair_out[] = { + {SOCK_SHADER, N_("BSDF")}, + {-1, ""}, +}; static int node_shader_gpu_bsdf_hair(GPUMaterial *mat, bNode *node, @@ -50,21 +44,17 @@ static int node_shader_gpu_bsdf_hair(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_bsdf_hair", in, out); } -} // namespace blender::nodes::node_shader_bsdf_hair_cc - /* node type definition */ -void register_node_type_sh_bsdf_hair() +void register_node_type_sh_bsdf_hair(void) { - namespace file_ns = blender::nodes::node_shader_bsdf_hair_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_BSDF_HAIR, "Hair BSDF", NODE_CLASS_SHADER, 0); - ntype.declare = file_ns::node_declare; + node_type_socket_templates(&ntype, sh_node_bsdf_hair_in, sh_node_bsdf_hair_out); node_type_size(&ntype, 150, 60, 200); - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_hair); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_hair); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_hair_principled.cc b/source/blender/nodes/shader/nodes/node_shader_bsdf_hair_principled.c index 55ac8bc4ff9..d2b40a7ec39 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_hair_principled.cc +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_hair_principled.c @@ -17,54 +17,40 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_bsdf_hair_principled_cc { - /* Color, melanin and absorption coefficient default to approximately same brownish hair. */ -static void node_declare(NodeDeclarationBuilder &b) -{ - b.add_input<decl::Color>(N_("Color")).default_value({0.017513f, 0.005763f, 0.002059f, 1.0f}); - b.add_input<decl::Float>(N_("Melanin")) - .default_value(0.8f) - .min(0.0f) - .max(1.0f) - .subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("Melanin Redness")) - .default_value(1.0f) - .min(0.0f) - .max(1.0f) - .subtype(PROP_FACTOR); - b.add_input<decl::Color>(N_("Tint")).default_value({1.0f, 1.0f, 1.0f, 1.0f}); - b.add_input<decl::Vector>(N_("Absorption Coefficient")) - .default_value({0.245531f, 0.52f, 1.365f}) - .min(0.0f) - .max(1000.0f); +static bNodeSocketTemplate sh_node_bsdf_hair_principled_in[] = { + {SOCK_RGBA, N_("Color"), 0.017513f, 0.005763f, 0.002059f, 1.0f, 0.0f, 1.0f}, + {SOCK_FLOAT, N_("Melanin"), 0.8f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("Melanin Redness"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_RGBA, N_("Tint"), 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f}, + {SOCK_VECTOR, N_("Absorption Coefficient"), 0.245531f, 0.52f, 1.365f, 0.0f, 0.0f, 1000.0f}, + {SOCK_FLOAT, N_("Roughness"), 0.3f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("Radial Roughness"), 0.3f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("Coat"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("IOR"), 1.55f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + {SOCK_FLOAT, + N_("Offset"), + 2.0f * ((float)M_PI) / 180.0f, + 0.0f, + 0.0f, + 0.0f, + -M_PI_2, + M_PI_2, + PROP_ANGLE}, + {SOCK_FLOAT, N_("Random Color"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("Random Roughness"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("Random"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + {-1, ""}, +}; - b.add_input<decl::Float>(N_("Roughness")) - .default_value(0.3f) - .min(0.0f) - .max(1.0f) - .subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("Radial Roughness")) - .default_value(0.3f) - .min(0.0f) - .max(1.0f) - .subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("Coat")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("IOR")).default_value(1.55f).min(0.0f).max(1000.0f); - b.add_input<decl::Float>(N_("Offset")) - .default_value(2.0f * ((float)M_PI) / 180.0f) - .min(-M_PI_2) - .max(M_PI_2) - .subtype(PROP_ANGLE); - b.add_input<decl::Float>(N_("Random Color")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("Random Roughness")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("Random")).min(0.0f).max(1.0f).hide_value(); - b.add_output<decl::Shader>(N_("BSDF")); -} +static bNodeSocketTemplate sh_node_bsdf_hair_principled_out[] = { + {SOCK_SHADER, N_("BSDF")}, + {-1, ""}, +}; /* Initialize the custom Parametrization property to Color. */ static void node_shader_init_hair_principled(bNodeTree *UNUSED(ntree), bNode *node) @@ -75,9 +61,10 @@ static void node_shader_init_hair_principled(bNodeTree *UNUSED(ntree), bNode *no /* Triggers (in)visibility of some sockets when changing Parametrization. */ static void node_shader_update_hair_principled(bNodeTree *ntree, bNode *node) { + bNodeSocket *sock; int parametrization = node->custom1; - LISTBASE_FOREACH (bNodeSocket *, sock, &node->inputs) { + for (sock = node->inputs.first; sock; sock = sock->next) { if (STREQ(sock->name, "Color")) { nodeSetSocketAvailability(ntree, sock, parametrization == SHD_PRINCIPLED_HAIR_REFLECTANCE); } @@ -104,22 +91,19 @@ static void node_shader_update_hair_principled(bNodeTree *ntree, bNode *node) } } -} // namespace blender::nodes::node_shader_bsdf_hair_principled_cc - /* node type definition */ -void register_node_type_sh_bsdf_hair_principled() +void register_node_type_sh_bsdf_hair_principled(void) { - namespace file_ns = blender::nodes::node_shader_bsdf_hair_principled_cc; - static bNodeType ntype; sh_node_type_base( &ntype, SH_NODE_BSDF_HAIR_PRINCIPLED, "Principled Hair BSDF", NODE_CLASS_SHADER, 0); - ntype.declare = file_ns::node_declare; + node_type_socket_templates( + &ntype, sh_node_bsdf_hair_principled_in, sh_node_bsdf_hair_principled_out); node_type_size_preset(&ntype, NODE_SIZE_LARGE); - node_type_init(&ntype, file_ns::node_shader_init_hair_principled); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_update(&ntype, file_ns::node_shader_update_hair_principled); + node_type_init(&ntype, node_shader_init_hair_principled); + node_type_storage(&ntype, "", NULL, NULL); + node_type_update(&ntype, node_shader_update_hair_principled); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.cc b/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.c index ff01a9d6a91..b9f4106c79a 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.cc +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.c @@ -17,66 +17,61 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_bsdf_principled_cc { - -static void node_declare(NodeDeclarationBuilder &b) -{ - b.add_input<decl::Color>(N_("Base Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f}); - b.add_input<decl::Float>(N_("Subsurface")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Vector>(N_("Subsurface Radius")) - .default_value({1.0f, 0.2f, 0.1f}) - .min(0.0f) - .max(100.0f) - .compact(); - b.add_input<decl::Color>(N_("Subsurface Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f}); - b.add_input<decl::Float>(N_("Subsurface IOR")) - .default_value(1.4f) - .min(1.01f) - .max(3.8f) - .subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("Subsurface Anisotropy")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("Metallic")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("Specular")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("Specular Tint")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("Roughness")) - .default_value(0.5f) - .min(0.0f) - .max(1.0f) - .subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("Anisotropic")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("Anisotropic Rotation")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("Sheen")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("Sheen Tint")) - .default_value(0.5f) - .min(0.0f) - .max(1.0f) - .subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("Clearcoat")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("Clearcoat Roughness")) - .default_value(0.03f) - .min(0.0f) - .max(1.0f) - .subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("IOR")).default_value(1.45f).min(0.0f).max(1000.0f).subtype( - PROP_FACTOR); - b.add_input<decl::Float>(N_("Transmission")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("Transmission Roughness")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Color>(N_("Emission")).default_value({0.0f, 0.0f, 0.0f, 1.0f}); - b.add_input<decl::Float>(N_("Emission Strength")).default_value(1.0f).min(0.0f).max(1000000.0f); - b.add_input<decl::Float>(N_("Alpha")) - .default_value(1.0f) - .min(0.0f) - .max(1.0f) - .subtype(PROP_FACTOR); - b.add_input<decl::Vector>(N_("Normal")).min(-1.0f).max(1.0f).hide_value(); - b.add_input<decl::Vector>(N_("Clearcoat Normal")).min(-1.0f).max(1.0f).hide_value(); - b.add_input<decl::Vector>(N_("Tangent")).min(-1.0f).max(1.0f).hide_value(); - b.add_output<decl::Shader>(N_("BSDF")); -} +static bNodeSocketTemplate sh_node_bsdf_principled_in[] = { + {SOCK_RGBA, N_("Base Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + {SOCK_FLOAT, N_("Subsurface"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_VECTOR, + N_("Subsurface Radius"), + 1.0f, + 0.2f, + 0.1f, + 0.0f, + 0.0f, + 100.0f, + PROP_NONE, + SOCK_COMPACT}, + {SOCK_RGBA, N_("Subsurface Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + {SOCK_FLOAT, N_("Subsurface IOR"), 1.4f, 0.0f, 0.0f, 0.0f, 1.01f, 3.8f, PROP_FACTOR}, + {SOCK_FLOAT, N_("Subsurface Anisotropy"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("Metallic"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("Specular"), 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("Specular Tint"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("Roughness"), 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("Anisotropic"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("Anisotropic Rotation"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("Sheen"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("Sheen Tint"), 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("Clearcoat"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("Clearcoat Roughness"), 0.03f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("IOR"), 1.45f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + {SOCK_FLOAT, N_("Transmission"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("Transmission Roughness"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_RGBA, N_("Emission"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, + {SOCK_FLOAT, N_("Emission Strength"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000000.0f}, + {SOCK_FLOAT, N_("Alpha"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + {SOCK_VECTOR, + N_("Clearcoat Normal"), + 0.0f, + 0.0f, + 0.0f, + 1.0f, + -1.0f, + 1.0f, + PROP_NONE, + SOCK_HIDE_VALUE}, + {SOCK_VECTOR, N_("Tangent"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + {-1, ""}, +}; + +static bNodeSocketTemplate sh_node_bsdf_principled_out[] = { + {SOCK_SHADER, N_("BSDF")}, + {-1, ""}, +}; static void node_shader_init_principled(bNodeTree *UNUSED(ntree), bNode *node) { @@ -127,8 +122,8 @@ static int node_shader_gpu_bsdf_principled(GPUMaterial *mat, /* SSS Profile */ if (use_subsurf) { - bNodeSocket *socket = (bNodeSocket *)BLI_findlink(&node->original->inputs, 2); - bNodeSocketValueRGBA *socket_data = (bNodeSocketValueRGBA *)socket->default_value; + bNodeSocket *socket = BLI_findlink(&node->original->inputs, 2); + bNodeSocketValueRGBA *socket_data = socket->default_value; /* For some reason it seems that the socket value is in ARGB format. */ GPU_material_sss_profile_create(mat, &socket_data->value[1]); } @@ -156,7 +151,7 @@ static int node_shader_gpu_bsdf_principled(GPUMaterial *mat, float f_use_refraction = use_refract ? 1.0f : 0.0f; float use_multi_scatter = (node->custom1 == SHD_GLOSSY_MULTI_GGX) ? 1.0f : 0.0f; - GPU_material_flag_set(mat, (eGPUMatFlag)flag); + GPU_material_flag_set(mat, flag); return GPU_stack_link(mat, node, @@ -177,7 +172,7 @@ static void node_shader_update_principled(bNodeTree *ntree, bNode *node) const int distribution = node->custom1; const int sss_method = node->custom2; - LISTBASE_FOREACH (bNodeSocket *, sock, &node->inputs) { + for (bNodeSocket *sock = node->inputs.first; sock; sock = sock->next) { if (STREQ(sock->name, "Transmission Roughness")) { nodeSetSocketAvailability(ntree, sock, distribution == SHD_GLOSSY_GGX); } @@ -188,22 +183,18 @@ static void node_shader_update_principled(bNodeTree *ntree, bNode *node) } } -} // namespace blender::nodes::node_shader_bsdf_principled_cc - /* node type definition */ -void register_node_type_sh_bsdf_principled() +void register_node_type_sh_bsdf_principled(void) { - namespace file_ns = blender::nodes::node_shader_bsdf_principled_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_BSDF_PRINCIPLED, "Principled BSDF", NODE_CLASS_SHADER, 0); - ntype.declare = file_ns::node_declare; + node_type_socket_templates(&ntype, sh_node_bsdf_principled_in, sh_node_bsdf_principled_out); node_type_size_preset(&ntype, NODE_SIZE_LARGE); - node_type_init(&ntype, file_ns::node_shader_init_principled); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_principled); - node_type_update(&ntype, file_ns::node_shader_update_principled); + node_type_init(&ntype, node_shader_init_principled); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_principled); + node_type_update(&ntype, node_shader_update_principled); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_refraction.cc b/source/blender/nodes/shader/nodes/node_shader_bsdf_refraction.c index 432e69331e0..ff33b3456db 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_refraction.cc +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_refraction.c @@ -17,20 +17,22 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_bsdf_refraction_cc { +static bNodeSocketTemplate sh_node_bsdf_refraction_in[] = { + {SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + {SOCK_FLOAT, N_("Roughness"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("IOR"), 1.45f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + {SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + {-1, ""}, +}; -static void node_declare(NodeDeclarationBuilder &b) -{ - b.add_input<decl::Color>(N_("Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f}); - b.add_input<decl::Float>(N_("Roughness")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("IOR")).default_value(1.45f).min(0.0f).max(1000.0f); - b.add_input<decl::Vector>(N_("Normal")).min(-1.0f).max(1.0f).hide_value(); - b.add_output<decl::Shader>(N_("BSDF")); -} +static bNodeSocketTemplate sh_node_bsdf_refraction_out[] = { + {SOCK_SHADER, N_("BSDF")}, + {-1, ""}, +}; static void node_shader_init_refraction(bNodeTree *UNUSED(ntree), bNode *node) { @@ -56,21 +58,17 @@ static int node_shader_gpu_bsdf_refraction(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_bsdf_refraction", in, out); } -} // namespace blender::nodes::node_shader_bsdf_refraction_cc - /* node type definition */ -void register_node_type_sh_bsdf_refraction() +void register_node_type_sh_bsdf_refraction(void) { - namespace file_ns = blender::nodes::node_shader_bsdf_refraction_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_BSDF_REFRACTION, "Refraction BSDF", NODE_CLASS_SHADER, 0); - ntype.declare = file_ns::node_declare; + node_type_socket_templates(&ntype, sh_node_bsdf_refraction_in, sh_node_bsdf_refraction_out); node_type_size_preset(&ntype, NODE_SIZE_MIDDLE); - node_type_init(&ntype, file_ns::node_shader_init_refraction); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_refraction); + node_type_init(&ntype, node_shader_init_refraction); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_refraction); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_toon.cc b/source/blender/nodes/shader/nodes/node_shader_bsdf_toon.c index 8d8e198b7fc..2d04fcee40c 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_toon.cc +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_toon.c @@ -17,24 +17,22 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_bsdf_toon_cc { +static bNodeSocketTemplate sh_node_bsdf_toon_in[] = { + {SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + {SOCK_FLOAT, N_("Size"), 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_FLOAT, N_("Smooth"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + {-1, ""}, +}; -static void node_declare(NodeDeclarationBuilder &b) -{ - b.add_input<decl::Color>(N_("Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f}); - b.add_input<decl::Float>(N_("Size")) - .default_value(0.5f) - .min(0.0f) - .max(1.0f) - .subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("Smooth")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Vector>(N_("Normal")).min(-1.0f).max(1.0f).hide_value(); - b.add_output<decl::Shader>(N_("BSDF")); -} +static bNodeSocketTemplate sh_node_bsdf_toon_out[] = { + {SOCK_SHADER, N_("BSDF")}, + {-1, ""}, +}; static int node_shader_gpu_bsdf_toon(GPUMaterial *mat, bNode *node, @@ -51,21 +49,17 @@ static int node_shader_gpu_bsdf_toon(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_bsdf_toon", in, out); } -} // namespace blender::nodes::node_shader_bsdf_toon_cc - /* node type definition */ -void register_node_type_sh_bsdf_toon() +void register_node_type_sh_bsdf_toon(void) { - namespace file_ns = blender::nodes::node_shader_bsdf_toon_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_BSDF_TOON, "Toon BSDF", NODE_CLASS_SHADER, 0); - ntype.declare = file_ns::node_declare; + node_type_socket_templates(&ntype, sh_node_bsdf_toon_in, sh_node_bsdf_toon_out); node_type_size_preset(&ntype, NODE_SIZE_MIDDLE); - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_toon); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_toon); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.cc b/source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.c index 5633f422fb8..d2e1a276645 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.cc +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.c @@ -17,18 +17,20 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_bsdf_translucent_cc { +static bNodeSocketTemplate sh_node_bsdf_translucent_in[] = { + {SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + {SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + {-1, ""}, +}; -static void node_declare(NodeDeclarationBuilder &b) -{ - b.add_input<decl::Color>(N_("Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f}); - b.add_input<decl::Vector>(N_("Normal")).min(-1.0f).max(1.0f).hide_value(); - b.add_output<decl::Shader>(N_("BSDF")); -} +static bNodeSocketTemplate sh_node_bsdf_translucent_out[] = { + {SOCK_SHADER, N_("BSDF")}, + {-1, ""}, +}; static int node_shader_gpu_bsdf_translucent(GPUMaterial *mat, bNode *node, @@ -45,20 +47,16 @@ static int node_shader_gpu_bsdf_translucent(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_bsdf_translucent", in, out); } -} // namespace blender::nodes::node_shader_bsdf_translucent_cc - /* node type definition */ -void register_node_type_sh_bsdf_translucent() +void register_node_type_sh_bsdf_translucent(void) { - namespace file_ns = blender::nodes::node_shader_bsdf_translucent_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_BSDF_TRANSLUCENT, "Translucent BSDF", NODE_CLASS_SHADER, 0); - ntype.declare = file_ns::node_declare; - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_translucent); + node_type_socket_templates(&ntype, sh_node_bsdf_translucent_in, sh_node_bsdf_translucent_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_translucent); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_transparent.cc b/source/blender/nodes/shader/nodes/node_shader_bsdf_transparent.c index 1c8e77781fe..45f8ebf1d52 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_transparent.cc +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_transparent.c @@ -17,17 +17,19 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_bsdf_transparent_cc { +static bNodeSocketTemplate sh_node_bsdf_transparent_in[] = { + {SOCK_RGBA, N_("Color"), 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f}, + {-1, ""}, +}; -static void node_declare(NodeDeclarationBuilder &b) -{ - b.add_input<decl::Color>(N_("Color")).default_value({1.0f, 1.0f, 1.0f, 1.0f}); - b.add_output<decl::Shader>(N_("BSDF")); -} +static bNodeSocketTemplate sh_node_bsdf_transparent_out[] = { + {SOCK_SHADER, N_("BSDF")}, + {-1, ""}, +}; static int node_shader_gpu_bsdf_transparent(GPUMaterial *mat, bNode *node, @@ -38,20 +40,16 @@ static int node_shader_gpu_bsdf_transparent(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_bsdf_transparent", in, out); } -} // namespace blender::nodes::node_shader_bsdf_transparent_cc - /* node type definition */ -void register_node_type_sh_bsdf_transparent() +void register_node_type_sh_bsdf_transparent(void) { - namespace file_ns = blender::nodes::node_shader_bsdf_transparent_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_BSDF_TRANSPARENT, "Transparent BSDF", NODE_CLASS_SHADER, 0); - ntype.declare = file_ns::node_declare; - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_transparent); + node_type_socket_templates(&ntype, sh_node_bsdf_transparent_in, sh_node_bsdf_transparent_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_transparent); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.cc b/source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.c index 6762b52c959..59e8bbd3c63 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.cc +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.c @@ -17,23 +17,21 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_bsdf_velvet_cc { +static bNodeSocketTemplate sh_node_bsdf_velvet_in[] = { + {SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + {SOCK_FLOAT, N_("Sigma"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + {-1, ""}, +}; -static void node_declare(NodeDeclarationBuilder &b) -{ - b.add_input<decl::Color>(N_("Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f}); - b.add_input<decl::Float>(N_("Sigma")) - .default_value(1.0f) - .min(0.0f) - .max(1.0f) - .subtype(PROP_FACTOR); - b.add_input<decl::Vector>(N_("Normal")).min(-1.0f).max(1.0f).hide_value(); - b.add_output<decl::Shader>(N_("BSDF")); -} +static bNodeSocketTemplate sh_node_bsdf_velvet_out[] = { + {SOCK_SHADER, N_("BSDF")}, + {-1, ""}, +}; static int node_shader_gpu_bsdf_velvet(GPUMaterial *mat, bNode *node, @@ -50,20 +48,16 @@ static int node_shader_gpu_bsdf_velvet(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_bsdf_velvet", in, out); } -} // namespace blender::nodes::node_shader_bsdf_velvet_cc - /* node type definition */ -void register_node_type_sh_bsdf_velvet() +void register_node_type_sh_bsdf_velvet(void) { - namespace file_ns = blender::nodes::node_shader_bsdf_velvet_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_BSDF_VELVET, "Velvet BSDF", NODE_CLASS_SHADER, 0); - ntype.declare = file_ns::node_declare; - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_velvet); + node_type_socket_templates(&ntype, sh_node_bsdf_velvet_in, sh_node_bsdf_velvet_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_velvet); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_bump.cc b/source/blender/nodes/shader/nodes/node_shader_bump.c index 40871c9ab32..7444ea3952a 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bump.cc +++ b/source/blender/nodes/shader/nodes/node_shader_bump.c @@ -21,12 +21,9 @@ * \ingroup shdnodes */ -#include "node_shader_util.hh" +#include "node_shader_util.h" /* **************** BUMP ******************** */ - -namespace blender::nodes::node_shader_bump_cc { - /* clang-format off */ static bNodeSocketTemplate sh_node_bump_in[] = { {SOCK_FLOAT, N_("Strength"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, @@ -57,19 +54,15 @@ static int gpu_shader_bump(GPUMaterial *mat, mat, node, "node_bump", in, out, GPU_builtin(GPU_VIEW_POSITION), GPU_constant(&invert)); } -} // namespace blender::nodes::node_shader_bump_cc - /* node type definition */ -void register_node_type_sh_bump() +void register_node_type_sh_bump(void) { - namespace file_ns = blender::nodes::node_shader_bump_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_BUMP, "Bump", NODE_CLASS_OP_VECTOR, 0); - node_type_socket_templates(&ntype, file_ns::sh_node_bump_in, file_ns::sh_node_bump_out); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::gpu_shader_bump); + node_type_socket_templates(&ntype, sh_node_bump_in, sh_node_bump_out); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, gpu_shader_bump); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_camera.cc b/source/blender/nodes/shader/nodes/node_shader_camera.c index d9349ccf86c..5148104700a 100644 --- a/source/blender/nodes/shader/nodes/node_shader_camera.cc +++ b/source/blender/nodes/shader/nodes/node_shader_camera.c @@ -21,12 +21,9 @@ * \ingroup shdnodes */ -#include "node_shader_util.hh" +#include "node_shader_util.h" /* **************** CAMERA INFO ******************** */ - -namespace blender::nodes::node_shader_camera_cc { - static bNodeSocketTemplate sh_node_camera_out[] = { {SOCK_VECTOR, N_("View Vector")}, {SOCK_FLOAT, N_("View Z Depth")}, @@ -47,18 +44,14 @@ static int gpu_shader_camera(GPUMaterial *mat, return GPU_stack_link(mat, node, "camera", in, out, viewvec); } -} // namespace blender::nodes::node_shader_camera_cc - -void register_node_type_sh_camera() +void register_node_type_sh_camera(void) { - namespace file_ns = blender::nodes::node_shader_camera_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_CAMERA, "Camera Data", NODE_CLASS_INPUT, 0); - node_type_socket_templates(&ntype, nullptr, file_ns::sh_node_camera_out); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::gpu_shader_camera); + node_type_socket_templates(&ntype, NULL, sh_node_camera_out); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, gpu_shader_camera); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_clamp.cc b/source/blender/nodes/shader/nodes/node_shader_clamp.cc index 50577749977..57a992a4275 100644 --- a/source/blender/nodes/shader/nodes/node_shader_clamp.cc +++ b/source/blender/nodes/shader/nodes/node_shader_clamp.cc @@ -21,9 +21,9 @@ * \ingroup shdnodes */ -#include "node_shader_util.hh" +#include "node_shader_util.h" -namespace blender::nodes::node_shader_clamp_cc { +namespace blender::nodes { static void sh_node_clamp_declare(NodeDeclarationBuilder &b) { @@ -34,6 +34,8 @@ static void sh_node_clamp_declare(NodeDeclarationBuilder &b) b.add_output<decl::Float>(N_("Result")); }; +} // namespace blender::nodes + static void node_shader_init_clamp(bNodeTree *UNUSED(ntree), bNode *node) { node->custom1 = NODE_CLAMP_MINMAX; /* clamp type */ @@ -73,19 +75,15 @@ static void sh_node_clamp_build_multi_function(blender::nodes::NodeMultiFunction } } -} // namespace blender::nodes::node_shader_clamp_cc - -void register_node_type_sh_clamp() +void register_node_type_sh_clamp(void) { - namespace file_ns = blender::nodes::node_shader_clamp_cc; - static bNodeType ntype; sh_fn_node_type_base(&ntype, SH_NODE_CLAMP, "Clamp", NODE_CLASS_CONVERTER, 0); - ntype.declare = file_ns::sh_node_clamp_declare; - node_type_init(&ntype, file_ns::node_shader_init_clamp); - node_type_gpu(&ntype, file_ns::gpu_shader_clamp); - ntype.build_multi_function = file_ns::sh_node_clamp_build_multi_function; + ntype.declare = blender::nodes::sh_node_clamp_declare; + node_type_init(&ntype, node_shader_init_clamp); + node_type_gpu(&ntype, gpu_shader_clamp); + ntype.build_multi_function = sh_node_clamp_build_multi_function; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_combine_rgb.cc b/source/blender/nodes/shader/nodes/node_shader_combine_rgb.cc deleted file mode 100644 index f5d401a5044..00000000000 --- a/source/blender/nodes/shader/nodes/node_shader_combine_rgb.cc +++ /dev/null @@ -1,86 +0,0 @@ -/* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2006 Blender Foundation. - * All rights reserved. - */ - -/** \file - * \ingroup shdnodes - */ - -#include "node_shader_util.hh" - -namespace blender::nodes::node_shader_combine_rgb_cc { - -static void sh_node_combrgb_declare(NodeDeclarationBuilder &b) -{ - b.is_function_node(); - b.add_input<decl::Float>(N_("R")).min(0.0f).max(1.0f); - b.add_input<decl::Float>(N_("G")).min(0.0f).max(1.0f); - b.add_input<decl::Float>(N_("B")).min(0.0f).max(1.0f); - b.add_output<decl::Color>(N_("Image")); -}; - -static void node_shader_exec_combrgb(void *UNUSED(data), - int UNUSED(thread), - bNode *UNUSED(node), - bNodeExecData *UNUSED(execdata), - bNodeStack **in, - bNodeStack **out) -{ - float r, g, b; - nodestack_get_vec(&r, SOCK_FLOAT, in[0]); - nodestack_get_vec(&g, SOCK_FLOAT, in[1]); - nodestack_get_vec(&b, SOCK_FLOAT, in[2]); - - out[0]->vec[0] = r; - out[0]->vec[1] = g; - out[0]->vec[2] = b; -} - -static int gpu_shader_combrgb(GPUMaterial *mat, - bNode *node, - bNodeExecData *UNUSED(execdata), - GPUNodeStack *in, - GPUNodeStack *out) -{ - return GPU_stack_link(mat, node, "combine_rgb", in, out); -} - -static void sh_node_combrgb_build_multi_function(blender::nodes::NodeMultiFunctionBuilder &builder) -{ - static blender::fn::CustomMF_SI_SI_SI_SO<float, float, float, blender::ColorGeometry4f> fn{ - "Combine RGB", - [](float r, float g, float b) { return blender::ColorGeometry4f(r, g, b, 1.0f); }}; - builder.set_matching_fn(fn); -} - -} // namespace blender::nodes::node_shader_combine_rgb_cc - -void register_node_type_sh_combrgb() -{ - namespace file_ns = blender::nodes::node_shader_combine_rgb_cc; - - static bNodeType ntype; - - sh_fn_node_type_base(&ntype, SH_NODE_COMBRGB, "Combine RGB", NODE_CLASS_CONVERTER, 0); - ntype.declare = file_ns::sh_node_combrgb_declare; - node_type_exec(&ntype, nullptr, nullptr, file_ns::node_shader_exec_combrgb); - node_type_gpu(&ntype, file_ns::gpu_shader_combrgb); - ntype.build_multi_function = file_ns::sh_node_combrgb_build_multi_function; - - nodeRegisterType(&ntype); -} diff --git a/source/blender/nodes/shader/nodes/node_shader_combine_xyz.cc b/source/blender/nodes/shader/nodes/node_shader_combine_xyz.cc deleted file mode 100644 index ff5b333a459..00000000000 --- a/source/blender/nodes/shader/nodes/node_shader_combine_xyz.cc +++ /dev/null @@ -1,67 +0,0 @@ -/* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2014 Blender Foundation. - * All rights reserved. - */ - -/** \file - * \ingroup shdnodes - */ - -#include "node_shader_util.hh" - -namespace blender::nodes::node_shader_combine_xyz_cc { - -static void sh_node_combxyz_declare(NodeDeclarationBuilder &b) -{ - b.is_function_node(); - b.add_input<decl::Float>(N_("X")).min(-10000.0f).max(10000.0f); - b.add_input<decl::Float>(N_("Y")).min(-10000.0f).max(10000.0f); - b.add_input<decl::Float>(N_("Z")).min(-10000.0f).max(10000.0f); - b.add_output<decl::Vector>(N_("Vector")); -}; - -static int gpu_shader_combxyz(GPUMaterial *mat, - bNode *node, - bNodeExecData *UNUSED(execdata), - GPUNodeStack *in, - GPUNodeStack *out) -{ - return GPU_stack_link(mat, node, "combine_xyz", in, out); -} - -static void sh_node_combxyz_build_multi_function(blender::nodes::NodeMultiFunctionBuilder &builder) -{ - static blender::fn::CustomMF_SI_SI_SI_SO<float, float, float, blender::float3> fn{ - "Combine Vector", [](float x, float y, float z) { return blender::float3(x, y, z); }}; - builder.set_matching_fn(fn); -} - -} // namespace blender::nodes::node_shader_combine_xyz_cc - -void register_node_type_sh_combxyz() -{ - namespace file_ns = blender::nodes::node_shader_combine_xyz_cc; - - static bNodeType ntype; - - sh_fn_node_type_base(&ntype, SH_NODE_COMBXYZ, "Combine XYZ", NODE_CLASS_CONVERTER, 0); - ntype.declare = file_ns::sh_node_combxyz_declare; - node_type_gpu(&ntype, file_ns::gpu_shader_combxyz); - ntype.build_multi_function = file_ns::sh_node_combxyz_build_multi_function; - - nodeRegisterType(&ntype); -} diff --git a/source/blender/nodes/shader/nodes/node_shader_common.cc b/source/blender/nodes/shader/nodes/node_shader_common.c index 156fe437e1a..07ae412d384 100644 --- a/source/blender/nodes/shader/nodes/node_shader_common.cc +++ b/source/blender/nodes/shader/nodes/node_shader_common.c @@ -31,7 +31,7 @@ #include "NOD_common.h" #include "node_common.h" #include "node_exec.h" -#include "node_shader_util.hh" +#include "node_shader_util.h" #include "RNA_access.h" @@ -55,7 +55,7 @@ static void move_stack(bNodeStack *to, bNodeStack *from) to->datatype = from->datatype; to->is_copy = from->is_copy; - from->data = nullptr; + from->data = NULL; from->is_copy = 0; } } @@ -68,7 +68,7 @@ static void *group_initexec(bNodeExecContext *context, bNode *node, bNodeInstanc bNodeTreeExec *exec; if (!ngroup) { - return nullptr; + return NULL; } /* initialize the internal node tree execution */ @@ -91,12 +91,15 @@ static void group_freeexec(void *nodedata) static void group_copy_inputs(bNode *gnode, bNodeStack **in, bNodeStack *gstack) { bNodeTree *ngroup = (bNodeTree *)gnode->id; + bNode *node; + bNodeSocket *sock; + bNodeStack *ns; + int a; - LISTBASE_FOREACH (bNode *, node, &ngroup->nodes) { + for (node = ngroup->nodes.first; node; node = node->next) { if (node->type == NODE_GROUP_INPUT) { - int a; - LISTBASE_FOREACH_INDEX (bNodeSocket *, sock, &node->outputs, a) { - bNodeStack *ns = node_get_socket_stack(gstack, sock); + for (sock = node->outputs.first, a = 0; sock; sock = sock->next, a++) { + ns = node_get_socket_stack(gstack, sock); if (ns) { copy_stack(ns, in[a]); } @@ -110,12 +113,15 @@ static void group_copy_inputs(bNode *gnode, bNodeStack **in, bNodeStack *gstack) static void group_move_outputs(bNode *gnode, bNodeStack **out, bNodeStack *gstack) { bNodeTree *ngroup = (bNodeTree *)gnode->id; + bNode *node; + bNodeSocket *sock; + bNodeStack *ns; + int a; - LISTBASE_FOREACH (bNode *, node, &ngroup->nodes) { + for (node = ngroup->nodes.first; node; node = node->next) { if (node->type == NODE_GROUP_OUTPUT && (node->flag & NODE_DO_OUTPUT)) { - int a; - LISTBASE_FOREACH_INDEX (bNodeSocket *, sock, &node->inputs, a) { - bNodeStack *ns = node_get_socket_stack(gstack, sock); + for (sock = node->inputs.first, a = 0; sock; sock = sock->next, a++) { + ns = node_get_socket_stack(gstack, sock); if (ns) { move_stack(out[a], ns); } @@ -132,7 +138,7 @@ static void group_execute(void *data, struct bNodeStack **in, struct bNodeStack **out) { - bNodeTreeExec *exec = (bNodeTreeExec *)execdata->data; + bNodeTreeExec *exec = execdata->data; bNodeThreadStack *nts; if (!exec) { @@ -143,7 +149,8 @@ static void group_execute(void *data, * it's stupid, but just makes it work. compo redesign will do this better. */ { - LISTBASE_FOREACH (bNode *, inode, &exec->nodetree->nodes) { + bNode *inode; + for (inode = exec->nodetree->nodes.first; inode; inode = inode->next) { inode->need_exec = 1; } } @@ -160,12 +167,15 @@ static void group_execute(void *data, static void group_gpu_copy_inputs(bNode *gnode, GPUNodeStack *in, bNodeStack *gstack) { bNodeTree *ngroup = (bNodeTree *)gnode->id; + bNode *node; + bNodeSocket *sock; + bNodeStack *ns; + int a; - LISTBASE_FOREACH (bNode *, node, &ngroup->nodes) { + for (node = ngroup->nodes.first; node; node = node->next) { if (node->type == NODE_GROUP_INPUT) { - int a; - LISTBASE_FOREACH_INDEX (bNodeSocket *, sock, &node->outputs, a) { - bNodeStack *ns = node_get_socket_stack(gstack, sock); + for (sock = node->outputs.first, a = 0; sock; sock = sock->next, a++) { + ns = node_get_socket_stack(gstack, sock); if (ns) { /* convert the external gpu stack back to internal node stack data */ node_data_from_gpu_stack(ns, &in[a]); @@ -180,12 +190,15 @@ static void group_gpu_copy_inputs(bNode *gnode, GPUNodeStack *in, bNodeStack *gs static void group_gpu_move_outputs(bNode *gnode, GPUNodeStack *out, bNodeStack *gstack) { bNodeTree *ngroup = (bNodeTree *)gnode->id; + bNode *node; + bNodeSocket *sock; + bNodeStack *ns; + int a; - LISTBASE_FOREACH (bNode *, node, &ngroup->nodes) { + for (node = ngroup->nodes.first; node; node = node->next) { if (node->type == NODE_GROUP_OUTPUT && (node->flag & NODE_DO_OUTPUT)) { - int a; - LISTBASE_FOREACH_INDEX (bNodeSocket *, sock, &node->inputs, a) { - bNodeStack *ns = node_get_socket_stack(gstack, sock); + for (sock = node->inputs.first, a = 0; sock; sock = sock->next, a++) { + ns = node_get_socket_stack(gstack, sock); if (ns) { /* convert the node stack data result back to gpu stack */ node_gpu_stack_from_data(&out[a], sock->type, ns); @@ -199,20 +212,20 @@ static void group_gpu_move_outputs(bNode *gnode, GPUNodeStack *out, bNodeStack * static int gpu_group_execute( GPUMaterial *mat, bNode *node, bNodeExecData *execdata, GPUNodeStack *in, GPUNodeStack *out) { - bNodeTreeExec *exec = (bNodeTreeExec *)execdata->data; + bNodeTreeExec *exec = execdata->data; if (!node->id) { return 0; } group_gpu_copy_inputs(node, in, exec->stack); - ntreeExecGPUNodes(exec, mat, nullptr); + ntreeExecGPUNodes(exec, mat, NULL); group_gpu_move_outputs(node, out, exec->stack); return 1; } -void register_node_type_sh_group() +void register_node_type_sh_group(void) { static bNodeType ntype; @@ -225,10 +238,10 @@ void register_node_type_sh_group() ntype.poll_instance = node_group_poll_instance; ntype.insert_link = node_insert_link_default; ntype.rna_ext.srna = RNA_struct_find("ShaderNodeGroup"); - BLI_assert(ntype.rna_ext.srna != nullptr); + BLI_assert(ntype.rna_ext.srna != NULL); RNA_struct_blender_type_set(ntype.rna_ext.srna, &ntype); - node_type_socket_templates(&ntype, nullptr, nullptr); + node_type_socket_templates(&ntype, NULL, NULL); node_type_size(&ntype, 140, 60, 400); node_type_label(&ntype, node_group_label); node_type_group_update(&ntype, node_group_update); @@ -241,10 +254,10 @@ void register_node_type_sh_group() void register_node_type_sh_custom_group(bNodeType *ntype) { /* These methods can be overridden but need a default implementation otherwise. */ - if (ntype->poll == nullptr) { + if (ntype->poll == NULL) { ntype->poll = sh_node_poll_default; } - if (ntype->insert_link == nullptr) { + if (ntype->insert_link == NULL) { ntype->insert_link = node_insert_link_default; } diff --git a/source/blender/nodes/shader/nodes/node_shader_curves.cc b/source/blender/nodes/shader/nodes/node_shader_curves.cc index 55bf75217c4..7ce5150bf85 100644 --- a/source/blender/nodes/shader/nodes/node_shader_curves.cc +++ b/source/blender/nodes/shader/nodes/node_shader_curves.cc @@ -21,9 +21,9 @@ * \ingroup shdnodes */ -#include "node_shader_util.hh" +#include "node_shader_util.h" -namespace blender::nodes::node_shader_curve_vec_cc { +namespace blender::nodes { static void sh_node_curve_vec_declare(NodeDeclarationBuilder &b) { @@ -33,6 +33,8 @@ static void sh_node_curve_vec_declare(NodeDeclarationBuilder &b) b.add_output<decl::Vector>(N_("Vector")); }; +} // namespace blender::nodes + static void node_shader_exec_curve_vec(void *UNUSED(data), int UNUSED(thread), bNode *node, @@ -150,29 +152,25 @@ static void sh_node_curve_vec_build_multi_function( builder.construct_and_set_matching_fn<CurveVecFunction>(*cumap); } -} // namespace blender::nodes::node_shader_curve_vec_cc - -void register_node_type_sh_curve_vec() +void register_node_type_sh_curve_vec(void) { - namespace file_ns = blender::nodes::node_shader_curve_vec_cc; - static bNodeType ntype; sh_fn_node_type_base(&ntype, SH_NODE_CURVE_VEC, "Vector Curves", NODE_CLASS_OP_VECTOR, 0); - ntype.declare = file_ns::sh_node_curve_vec_declare; - node_type_init(&ntype, file_ns::node_shader_init_curve_vec); + ntype.declare = blender::nodes::sh_node_curve_vec_declare; + node_type_init(&ntype, node_shader_init_curve_vec); node_type_size_preset(&ntype, NODE_SIZE_LARGE); node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves); - node_type_exec(&ntype, node_initexec_curves, nullptr, file_ns::node_shader_exec_curve_vec); - node_type_gpu(&ntype, file_ns::gpu_shader_curve_vec); - ntype.build_multi_function = file_ns::sh_node_curve_vec_build_multi_function; + node_type_exec(&ntype, node_initexec_curves, nullptr, node_shader_exec_curve_vec); + node_type_gpu(&ntype, gpu_shader_curve_vec); + ntype.build_multi_function = sh_node_curve_vec_build_multi_function; nodeRegisterType(&ntype); } /* **************** CURVE RGB ******************** */ -namespace blender::nodes::node_shader_curve_rgb_cc { +namespace blender::nodes { static void sh_node_curve_rgb_declare(NodeDeclarationBuilder &b) { @@ -182,6 +180,8 @@ static void sh_node_curve_rgb_declare(NodeDeclarationBuilder &b) b.add_output<decl::Color>(N_("Color")); }; +} // namespace blender::nodes + static void node_shader_exec_curve_rgb(void *UNUSED(data), int UNUSED(thread), bNode *node, @@ -329,29 +329,25 @@ static void sh_node_curve_rgb_build_multi_function( builder.construct_and_set_matching_fn<CurveRGBFunction>(*cumap); } -} // namespace blender::nodes::node_shader_curve_rgb_cc - -void register_node_type_sh_curve_rgb() +void register_node_type_sh_curve_rgb(void) { - namespace file_ns = blender::nodes::node_shader_curve_rgb_cc; - static bNodeType ntype; sh_fn_node_type_base(&ntype, SH_NODE_CURVE_RGB, "RGB Curves", NODE_CLASS_OP_COLOR, 0); - ntype.declare = file_ns::sh_node_curve_rgb_declare; - node_type_init(&ntype, file_ns::node_shader_init_curve_rgb); + ntype.declare = blender::nodes::sh_node_curve_rgb_declare; + node_type_init(&ntype, node_shader_init_curve_rgb); node_type_size_preset(&ntype, NODE_SIZE_LARGE); node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves); - node_type_exec(&ntype, node_initexec_curves, nullptr, file_ns::node_shader_exec_curve_rgb); - node_type_gpu(&ntype, file_ns::gpu_shader_curve_rgb); - ntype.build_multi_function = file_ns::sh_node_curve_rgb_build_multi_function; + node_type_exec(&ntype, node_initexec_curves, nullptr, node_shader_exec_curve_rgb); + node_type_gpu(&ntype, gpu_shader_curve_rgb); + ntype.build_multi_function = sh_node_curve_rgb_build_multi_function; nodeRegisterType(&ntype); } /* **************** CURVE FLOAT ******************** */ -namespace blender::nodes::node_shader_curve_float_cc { +namespace blender::nodes { static void sh_node_curve_float_declare(NodeDeclarationBuilder &b) { @@ -365,6 +361,8 @@ static void sh_node_curve_float_declare(NodeDeclarationBuilder &b) b.add_output<decl::Float>(N_("Value")); }; +} // namespace blender::nodes + static void node_shader_exec_curve_float(void *UNUSED(data), int UNUSED(thread), bNode *node, @@ -475,22 +473,18 @@ static void sh_node_curve_float_build_multi_function( builder.construct_and_set_matching_fn<CurveFloatFunction>(*cumap); } -} // namespace blender::nodes::node_shader_curve_float_cc - -void register_node_type_sh_curve_float() +void register_node_type_sh_curve_float(void) { - namespace file_ns = blender::nodes::node_shader_curve_float_cc; - static bNodeType ntype; sh_fn_node_type_base(&ntype, SH_NODE_CURVE_FLOAT, "Float Curve", NODE_CLASS_CONVERTER, 0); - ntype.declare = file_ns::sh_node_curve_float_declare; - node_type_init(&ntype, file_ns::node_shader_init_curve_float); + ntype.declare = blender::nodes::sh_node_curve_float_declare; + node_type_init(&ntype, node_shader_init_curve_float); node_type_size_preset(&ntype, NODE_SIZE_LARGE); node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves); - node_type_exec(&ntype, node_initexec_curves, nullptr, file_ns::node_shader_exec_curve_float); - node_type_gpu(&ntype, file_ns::gpu_shader_curve_float); - ntype.build_multi_function = file_ns::sh_node_curve_float_build_multi_function; + node_type_exec(&ntype, node_initexec_curves, nullptr, node_shader_exec_curve_float); + node_type_gpu(&ntype, gpu_shader_curve_float); + ntype.build_multi_function = sh_node_curve_float_build_multi_function; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_displacement.cc b/source/blender/nodes/shader/nodes/node_shader_displacement.c index 238f2014fa7..e7deef23428 100644 --- a/source/blender/nodes/shader/nodes/node_shader_displacement.cc +++ b/source/blender/nodes/shader/nodes/node_shader_displacement.c @@ -17,12 +17,10 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_displacement_cc { - static bNodeSocketTemplate sh_node_displacement_in[] = { {SOCK_FLOAT, N_("Height"), 0.00f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, {SOCK_FLOAT, N_("Midlevel"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, @@ -70,21 +68,16 @@ static int gpu_shader_displacement(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_displacement_world", in, out); } -} // namespace blender::nodes::node_shader_displacement_cc - /* node type definition */ -void register_node_type_sh_displacement() +void register_node_type_sh_displacement(void) { - namespace file_ns = blender::nodes::node_shader_displacement_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_DISPLACEMENT, "Displacement", NODE_CLASS_OP_VECTOR, 0); - node_type_socket_templates( - &ntype, file_ns::sh_node_displacement_in, file_ns::sh_node_displacement_out); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_init(&ntype, file_ns::node_shader_init_displacement); - node_type_gpu(&ntype, file_ns::gpu_shader_displacement); + node_type_socket_templates(&ntype, sh_node_displacement_in, sh_node_displacement_out); + node_type_storage(&ntype, "", NULL, NULL); + node_type_init(&ntype, node_shader_init_displacement); + node_type_gpu(&ntype, gpu_shader_displacement); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_eevee_specular.cc b/source/blender/nodes/shader/nodes/node_shader_eevee_specular.c index 190ed0c1590..015af19abb2 100644 --- a/source/blender/nodes/shader/nodes/node_shader_eevee_specular.cc +++ b/source/blender/nodes/shader/nodes/node_shader_eevee_specular.c @@ -17,12 +17,10 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_eevee_specular_cc { - static bNodeSocketTemplate sh_node_eevee_specular_in[] = { {SOCK_RGBA, N_("Base Color"), 0.8f, 0.8f, 0.8f, 1.0f}, {SOCK_RGBA, N_("Specular"), 0.03f, 0.03f, 0.03f, 1.0f}, @@ -83,26 +81,21 @@ static int node_shader_gpu_eevee_specular(GPUMaterial *mat, GPU_link(mat, "set_value", GPU_constant(&one), &in[9].link); } - GPU_material_flag_set(mat, (eGPUMatFlag)(GPU_MATFLAG_DIFFUSE | GPU_MATFLAG_GLOSSY)); + GPU_material_flag_set(mat, GPU_MATFLAG_DIFFUSE | GPU_MATFLAG_GLOSSY); return GPU_stack_link(mat, node, "node_eevee_specular", in, out, GPU_constant(&node->ssr_id)); } -} // namespace blender::nodes::node_shader_eevee_specular_cc - /* node type definition */ -void register_node_type_sh_eevee_specular() +void register_node_type_sh_eevee_specular(void) { - namespace file_ns = blender::nodes::node_shader_eevee_specular_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_EEVEE_SPECULAR, "Specular BSDF", NODE_CLASS_SHADER, 0); - node_type_socket_templates( - &ntype, file_ns::sh_node_eevee_specular_in, file_ns::sh_node_eevee_specular_out); - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_eevee_specular); + node_type_socket_templates(&ntype, sh_node_eevee_specular_in, sh_node_eevee_specular_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_eevee_specular); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_emission.cc b/source/blender/nodes/shader/nodes/node_shader_emission.c index afd250b1a9a..13f040fca48 100644 --- a/source/blender/nodes/shader/nodes/node_shader_emission.cc +++ b/source/blender/nodes/shader/nodes/node_shader_emission.c @@ -17,18 +17,20 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_emission_cc { +static bNodeSocketTemplate sh_node_emission_in[] = { + {SOCK_RGBA, N_("Color"), 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f}, + {SOCK_FLOAT, N_("Strength"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000000.0f}, + {-1, ""}, +}; -static void node_declare(NodeDeclarationBuilder &b) -{ - b.add_input<decl::Color>(N_("Color")).default_value({1.0f, 1.0f, 1.0f, 1.0f}); - b.add_input<decl::Float>(N_("Strength")).default_value(1.0f).min(0.0f).max(1000000.0f); - b.add_output<decl::Shader>(N_("Emission")); -} +static bNodeSocketTemplate sh_node_emission_out[] = { + {SOCK_SHADER, N_("Emission")}, + {-1, ""}, +}; static int node_shader_gpu_emission(GPUMaterial *mat, bNode *node, @@ -39,20 +41,16 @@ static int node_shader_gpu_emission(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_emission", in, out, GPU_builtin(GPU_VIEW_NORMAL)); } -} // namespace blender::nodes::node_shader_emission_cc - /* node type definition */ -void register_node_type_sh_emission() +void register_node_type_sh_emission(void) { - namespace file_ns = blender::nodes::node_shader_emission_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_EMISSION, "Emission", NODE_CLASS_SHADER, 0); - ntype.declare = file_ns::node_declare; - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_emission); + node_type_socket_templates(&ntype, sh_node_emission_in, sh_node_emission_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_emission); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_fresnel.cc b/source/blender/nodes/shader/nodes/node_shader_fresnel.c index 92688fbabea..0af4e4ff5fb 100644 --- a/source/blender/nodes/shader/nodes/node_shader_fresnel.cc +++ b/source/blender/nodes/shader/nodes/node_shader_fresnel.c @@ -17,12 +17,9 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** Fresnel ******************** */ - -namespace blender::nodes::node_shader_fresnel_cc { - static bNodeSocketTemplate sh_node_fresnel_in[] = { {SOCK_FLOAT, N_("IOR"), 1.45f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, {SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, @@ -60,21 +57,17 @@ static void node_shader_exec_fresnel(void *UNUSED(data), { } -} // namespace blender::nodes::node_shader_fresnel_cc - /* node type definition */ -void register_node_type_sh_fresnel() +void register_node_type_sh_fresnel(void) { - namespace file_ns = blender::nodes::node_shader_fresnel_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_FRESNEL, "Fresnel", NODE_CLASS_INPUT, 0); - node_type_socket_templates(&ntype, file_ns::sh_node_fresnel_in, file_ns::sh_node_fresnel_out); - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_fresnel); - node_type_exec(&ntype, nullptr, nullptr, file_ns::node_shader_exec_fresnel); + node_type_socket_templates(&ntype, sh_node_fresnel_in, sh_node_fresnel_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_fresnel); + node_type_exec(&ntype, NULL, NULL, node_shader_exec_fresnel); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_gamma.cc b/source/blender/nodes/shader/nodes/node_shader_gamma.c index ecac578701a..b48838e5f56 100644 --- a/source/blender/nodes/shader/nodes/node_shader_gamma.cc +++ b/source/blender/nodes/shader/nodes/node_shader_gamma.c @@ -17,12 +17,10 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "node_shader_util.h" /* **************** Gamma Tools ******************** */ -namespace blender::nodes::node_shader_gamma_cc { - static bNodeSocketTemplate sh_node_gamma_in[] = { {SOCK_RGBA, N_("Color"), 1.0f, 1.0f, 1.0f, 1.0f}, {SOCK_FLOAT, N_("Gamma"), 1.0f, 0.0f, 0.0f, 0.0f, 0.001f, 10.0f, PROP_UNSIGNED}, @@ -60,20 +58,16 @@ static int node_shader_gpu_gamma(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_gamma", in, out); } -} // namespace blender::nodes::node_shader_gamma_cc - -void register_node_type_sh_gamma() +void register_node_type_sh_gamma(void) { - namespace file_ns = blender::nodes::node_shader_gamma_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_GAMMA, "Gamma", NODE_CLASS_OP_COLOR, 0); - node_type_socket_templates(&ntype, file_ns::sh_node_gamma_in, file_ns::sh_node_gamma_out); - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_exec(&ntype, nullptr, nullptr, file_ns::node_shader_exec_gamma); - node_type_gpu(&ntype, file_ns::node_shader_gpu_gamma); + node_type_socket_templates(&ntype, sh_node_gamma_in, sh_node_gamma_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL, NULL, node_shader_exec_gamma); + node_type_gpu(&ntype, node_shader_gpu_gamma); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_geometry.cc b/source/blender/nodes/shader/nodes/node_shader_geometry.c index 22c865cf82c..f66633e64c8 100644 --- a/source/blender/nodes/shader/nodes/node_shader_geometry.cc +++ b/source/blender/nodes/shader/nodes/node_shader_geometry.c @@ -17,12 +17,10 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_geometry_cc { - static bNodeSocketTemplate sh_node_geometry_out[] = { {SOCK_VECTOR, N_("Position"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, {SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, @@ -81,27 +79,23 @@ static int node_shader_gpu_geometry(GPUMaterial *mat, out[i].link, out[i].link, &out[i].link, - nullptr); + NULL); } } return success; } -} // namespace blender::nodes::node_shader_geometry_cc - /* node type definition */ -void register_node_type_sh_geometry() +void register_node_type_sh_geometry(void) { - namespace file_ns = blender::nodes::node_shader_geometry_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_NEW_GEOMETRY, "Geometry", NODE_CLASS_INPUT, 0); - node_type_socket_templates(&ntype, nullptr, file_ns::sh_node_geometry_out); - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_geometry); + node_type_socket_templates(&ntype, NULL, sh_node_geometry_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_geometry); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_hair_info.cc b/source/blender/nodes/shader/nodes/node_shader_hair_info.c index 76d5553c0d0..c721fb9c77a 100644 --- a/source/blender/nodes/shader/nodes/node_shader_hair_info.cc +++ b/source/blender/nodes/shader/nodes/node_shader_hair_info.c @@ -17,9 +17,7 @@ * All rights reserved. */ -#include "node_shader_util.hh" - -namespace blender::nodes::node_shader_hair_info_cc { +#include "../node_shader_util.h" static bNodeSocketTemplate outputs[] = { {SOCK_FLOAT, N_("Is Strand"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, @@ -45,20 +43,16 @@ static int node_shader_gpu_hair_info(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_hair_info", in, out, length_link); } -} // namespace blender::nodes::node_shader_hair_info_cc - /* node type definition */ -void register_node_type_sh_hair_info() +void register_node_type_sh_hair_info(void) { - namespace file_ns = blender::nodes::node_shader_hair_info_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_HAIR_INFO, "Hair Info", NODE_CLASS_INPUT, 0); - node_type_socket_templates(&ntype, nullptr, file_ns::outputs); - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_hair_info); + node_type_socket_templates(&ntype, NULL, outputs); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_hair_info); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_holdout.cc b/source/blender/nodes/shader/nodes/node_shader_holdout.c index 02bfda39d78..b58f86c1fc0 100644 --- a/source/blender/nodes/shader/nodes/node_shader_holdout.cc +++ b/source/blender/nodes/shader/nodes/node_shader_holdout.c @@ -17,16 +17,18 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_holdout_cc { +static bNodeSocketTemplate sh_node_holdout_in[] = { + {-1, ""}, +}; -static void node_declare(NodeDeclarationBuilder &b) -{ - b.add_output<decl::Shader>(N_("Holdout")); -} +static bNodeSocketTemplate sh_node_holdout_out[] = { + {SOCK_SHADER, N_("Holdout")}, + {-1, ""}, +}; static int gpu_shader_rgb(GPUMaterial *mat, bNode *node, @@ -37,20 +39,16 @@ static int gpu_shader_rgb(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_holdout", in, out); } -} // namespace blender::nodes::node_shader_holdout_cc - /* node type definition */ -void register_node_type_sh_holdout() +void register_node_type_sh_holdout(void) { - namespace file_ns = blender::nodes::node_shader_holdout_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_HOLDOUT, "Holdout", NODE_CLASS_SHADER, 0); - ntype.declare = file_ns::node_declare; - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::gpu_shader_rgb); + node_type_socket_templates(&ntype, sh_node_holdout_in, sh_node_holdout_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, gpu_shader_rgb); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_hueSatVal.cc b/source/blender/nodes/shader/nodes/node_shader_hueSatVal.c index 101166b1e6d..50eb5bf32c9 100644 --- a/source/blender/nodes/shader/nodes/node_shader_hueSatVal.cc +++ b/source/blender/nodes/shader/nodes/node_shader_hueSatVal.c @@ -21,12 +21,9 @@ * \ingroup shdnodes */ -#include "node_shader_util.hh" +#include "node_shader_util.h" /* **************** Hue Saturation ******************** */ - -namespace blender::nodes::node_shader_hueSatVal_cc { - static bNodeSocketTemplate sh_node_hue_sat_in[] = { {SOCK_FLOAT, N_("Hue"), 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE}, {SOCK_FLOAT, N_("Saturation"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f, PROP_NONE}, @@ -88,19 +85,15 @@ static int gpu_shader_hue_sat(GPUMaterial *mat, return GPU_stack_link(mat, node, "hue_sat", in, out); } -} // namespace blender::nodes::node_shader_hueSatVal_cc - -void register_node_type_sh_hue_sat() +void register_node_type_sh_hue_sat(void) { - namespace file_ns = blender::nodes::node_shader_hueSatVal_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_HUE_SAT, "Hue Saturation Value", NODE_CLASS_OP_COLOR, 0); - node_type_socket_templates(&ntype, file_ns::sh_node_hue_sat_in, file_ns::sh_node_hue_sat_out); + node_type_socket_templates(&ntype, sh_node_hue_sat_in, sh_node_hue_sat_out); node_type_size_preset(&ntype, NODE_SIZE_MIDDLE); - node_type_exec(&ntype, nullptr, nullptr, file_ns::node_shader_exec_hue_sat); - node_type_gpu(&ntype, file_ns::gpu_shader_hue_sat); + node_type_exec(&ntype, NULL, NULL, node_shader_exec_hue_sat); + node_type_gpu(&ntype, gpu_shader_hue_sat); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_ies_light.cc b/source/blender/nodes/shader/nodes/node_shader_ies_light.c index 9bf402d055c..9cc5fd46181 100644 --- a/source/blender/nodes/shader/nodes/node_shader_ies_light.cc +++ b/source/blender/nodes/shader/nodes/node_shader_ies_light.c @@ -17,12 +17,10 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** IES Light ******************** */ -namespace blender::nodes::node_shader_ies_light_cc { - static bNodeSocketTemplate sh_node_tex_ies_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_("Strength"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000000.0f, PROP_NONE}, @@ -36,23 +34,18 @@ static bNodeSocketTemplate sh_node_tex_ies_out[] = { static void node_shader_init_tex_ies(bNodeTree *UNUSED(ntree), bNode *node) { - NodeShaderTexIES *tex = (NodeShaderTexIES *)MEM_callocN(sizeof(NodeShaderTexIES), - "NodeShaderIESLight"); + NodeShaderTexIES *tex = MEM_callocN(sizeof(NodeShaderTexIES), "NodeShaderIESLight"); node->storage = tex; } -} // namespace blender::nodes::node_shader_ies_light_cc - /* node type definition */ -void register_node_type_sh_tex_ies() +void register_node_type_sh_tex_ies(void) { - 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, 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_socket_templates(&ntype, sh_node_tex_ies_in, sh_node_tex_ies_out); + node_type_init(&ntype, 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_invert.cc b/source/blender/nodes/shader/nodes/node_shader_invert.c index e3981eab88c..0d6709a1968 100644 --- a/source/blender/nodes/shader/nodes/node_shader_invert.cc +++ b/source/blender/nodes/shader/nodes/node_shader_invert.c @@ -21,12 +21,9 @@ * \ingroup shdnodes */ -#include "node_shader_util.hh" +#include "node_shader_util.h" /* **************** INVERT ******************** */ - -namespace blender::nodes::node_shader_invert_cc { - static bNodeSocketTemplate sh_node_invert_in[] = { {SOCK_FLOAT, N_("Fac"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, {SOCK_RGBA, N_("Color"), 0.0f, 0.0f, 0.0f, 1.0f}, @@ -68,18 +65,14 @@ static int gpu_shader_invert(GPUMaterial *mat, return GPU_stack_link(mat, node, "invert", in, out); } -} // namespace blender::nodes::node_shader_invert_cc - -void register_node_type_sh_invert() +void register_node_type_sh_invert(void) { - namespace file_ns = blender::nodes::node_shader_invert_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_INVERT, "Invert", NODE_CLASS_OP_COLOR, 0); - node_type_socket_templates(&ntype, file_ns::sh_node_invert_in, file_ns::sh_node_invert_out); - node_type_exec(&ntype, nullptr, nullptr, file_ns::node_shader_exec_invert); - node_type_gpu(&ntype, file_ns::gpu_shader_invert); + node_type_socket_templates(&ntype, sh_node_invert_in, sh_node_invert_out); + node_type_exec(&ntype, NULL, NULL, node_shader_exec_invert); + node_type_gpu(&ntype, gpu_shader_invert); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_layer_weight.cc b/source/blender/nodes/shader/nodes/node_shader_layer_weight.c index b87f25eb483..c26b40b081c 100644 --- a/source/blender/nodes/shader/nodes/node_shader_layer_weight.cc +++ b/source/blender/nodes/shader/nodes/node_shader_layer_weight.c @@ -17,12 +17,10 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** Layer Weight ******************** */ -namespace blender::nodes::node_shader_layer_weight_cc { - static bNodeSocketTemplate sh_node_layer_weight_in[] = { {SOCK_FLOAT, N_("Blend"), 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, {SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, @@ -61,22 +59,17 @@ static void node_shader_exec_layer_weight(void *UNUSED(data), { } -} // namespace blender::nodes::node_shader_layer_weight_cc - /* node type definition */ -void register_node_type_sh_layer_weight() +void register_node_type_sh_layer_weight(void) { - namespace file_ns = blender::nodes::node_shader_layer_weight_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_LAYER_WEIGHT, "Layer Weight", NODE_CLASS_INPUT, 0); - node_type_socket_templates( - &ntype, file_ns::sh_node_layer_weight_in, file_ns::sh_node_layer_weight_out); - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_layer_weight); - node_type_exec(&ntype, nullptr, nullptr, file_ns::node_shader_exec_layer_weight); + node_type_socket_templates(&ntype, sh_node_layer_weight_in, sh_node_layer_weight_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_layer_weight); + node_type_exec(&ntype, NULL, NULL, node_shader_exec_layer_weight); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_light_falloff.cc b/source/blender/nodes/shader/nodes/node_shader_light_falloff.c index 7568505b9f1..22172221f77 100644 --- a/source/blender/nodes/shader/nodes/node_shader_light_falloff.cc +++ b/source/blender/nodes/shader/nodes/node_shader_light_falloff.c @@ -17,12 +17,10 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** INPUT ********************* */ -namespace blender::nodes::node_shader_light_falloff_cc { - static bNodeSocketTemplate sh_node_light_falloff_in[] = { {SOCK_FLOAT, N_("Strength"), 100.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000000.0f}, {SOCK_FLOAT, N_("Smooth"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, @@ -47,22 +45,17 @@ static int node_shader_gpu_light_falloff(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_light_falloff", in, out); } -} // namespace blender::nodes::node_shader_light_falloff_cc - /* node type definition */ -void register_node_type_sh_light_falloff() +void register_node_type_sh_light_falloff(void) { - namespace file_ns = blender::nodes::node_shader_light_falloff_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_LIGHT_FALLOFF, "Light Falloff", NODE_CLASS_OP_COLOR, 0); - node_type_socket_templates( - &ntype, file_ns::sh_node_light_falloff_in, file_ns::sh_node_light_falloff_out); + node_type_socket_templates(&ntype, sh_node_light_falloff_in, sh_node_light_falloff_out); node_type_size_preset(&ntype, NODE_SIZE_MIDDLE); - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_light_falloff); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_light_falloff); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_light_path.cc b/source/blender/nodes/shader/nodes/node_shader_light_path.c index 5e3f316ad7a..45ad2133ee8 100644 --- a/source/blender/nodes/shader/nodes/node_shader_light_path.cc +++ b/source/blender/nodes/shader/nodes/node_shader_light_path.c @@ -17,12 +17,10 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_light_path_cc { - static bNodeSocketTemplate sh_node_light_path_out[] = { {SOCK_FLOAT, N_("Is Camera Ray"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, {SOCK_FLOAT, N_("Is Shadow Ray"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, @@ -49,20 +47,16 @@ static int node_shader_gpu_light_path(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_light_path", in, out); } -} // namespace blender::nodes::node_shader_light_path_cc - /* node type definition */ -void register_node_type_sh_light_path() +void register_node_type_sh_light_path(void) { - namespace file_ns = blender::nodes::node_shader_light_path_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_LIGHT_PATH, "Light Path", NODE_CLASS_INPUT, 0); - node_type_socket_templates(&ntype, nullptr, file_ns::sh_node_light_path_out); - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_light_path); + node_type_socket_templates(&ntype, NULL, sh_node_light_path_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_light_path); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_map_range.cc b/source/blender/nodes/shader/nodes/node_shader_map_range.cc index f8fcd15a1c9..e55963eb500 100644 --- a/source/blender/nodes/shader/nodes/node_shader_map_range.cc +++ b/source/blender/nodes/shader/nodes/node_shader_map_range.cc @@ -21,11 +21,11 @@ * \ingroup shdnodes */ -#include "node_shader_util.hh" +#include "node_shader_util.h" #include "BLI_math_base_safe.h" -namespace blender::nodes::node_shader_map_range_cc { +namespace blender::nodes { static void sh_node_map_range_declare(NodeDeclarationBuilder &b) { @@ -39,6 +39,8 @@ static void sh_node_map_range_declare(NodeDeclarationBuilder &b) b.add_output<decl::Float>(N_("Result")); }; +} // namespace blender::nodes + static void node_shader_update_map_range(bNodeTree *ntree, bNode *node) { bNodeSocket *sockSteps = nodeFindSocket(node, SOCK_IN, "Steps"); @@ -305,20 +307,16 @@ static void sh_node_map_range_build_multi_function( } } -} // namespace blender::nodes::node_shader_map_range_cc - -void register_node_type_sh_map_range() +void register_node_type_sh_map_range(void) { - namespace file_ns = blender::nodes::node_shader_map_range_cc; - static bNodeType ntype; sh_fn_node_type_base(&ntype, SH_NODE_MAP_RANGE, "Map Range", NODE_CLASS_CONVERTER, 0); - ntype.declare = file_ns::sh_node_map_range_declare; - node_type_init(&ntype, file_ns::node_shader_init_map_range); - node_type_update(&ntype, file_ns::node_shader_update_map_range); - node_type_gpu(&ntype, file_ns::gpu_shader_map_range); - ntype.build_multi_function = file_ns::sh_node_map_range_build_multi_function; + ntype.declare = blender::nodes::sh_node_map_range_declare; + node_type_init(&ntype, node_shader_init_map_range); + node_type_update(&ntype, node_shader_update_map_range); + node_type_gpu(&ntype, gpu_shader_map_range); + ntype.build_multi_function = sh_node_map_range_build_multi_function; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_mapping.cc b/source/blender/nodes/shader/nodes/node_shader_mapping.c index ef72dc59095..cabfecdb6ee 100644 --- a/source/blender/nodes/shader/nodes/node_shader_mapping.cc +++ b/source/blender/nodes/shader/nodes/node_shader_mapping.c @@ -21,12 +21,9 @@ * \ingroup shdnodes */ -#include "node_shader_util.hh" +#include "node_shader_util.h" /* **************** MAPPING ******************** */ - -namespace blender::nodes::node_shader_mapping_cc { - static bNodeSocketTemplate sh_node_mapping_in[] = { {SOCK_VECTOR, N_("Vector"), 0.0f, 0.0f, 0.0f, 1.0f, -FLT_MAX, FLT_MAX, PROP_NONE}, {SOCK_VECTOR, N_("Location"), 0.0f, 0.0f, 0.0f, 1.0f, -FLT_MAX, FLT_MAX, PROP_TRANSLATION}, @@ -47,10 +44,10 @@ static int gpu_shader_mapping(GPUMaterial *mat, GPUNodeStack *out) { static const char *names[] = { - "mapping_point", - "mapping_texture", - "mapping_vector", - "mapping_normal", + [NODE_MAPPING_TYPE_POINT] = "mapping_point", + [NODE_MAPPING_TYPE_TEXTURE] = "mapping_texture", + [NODE_MAPPING_TYPE_VECTOR] = "mapping_vector", + [NODE_MAPPING_TYPE_NORMAL] = "mapping_normal", }; if (node->custom1 < ARRAY_SIZE(names) && names[node->custom1]) { @@ -67,18 +64,14 @@ static void node_shader_update_mapping(bNodeTree *ntree, bNode *node) ntree, sock, ELEM(node->custom1, NODE_MAPPING_TYPE_POINT, NODE_MAPPING_TYPE_TEXTURE)); } -} // namespace blender::nodes::node_shader_mapping_cc - -void register_node_type_sh_mapping() +void register_node_type_sh_mapping(void) { - namespace file_ns = blender::nodes::node_shader_mapping_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_MAPPING, "Mapping", NODE_CLASS_OP_VECTOR, 0); - node_type_socket_templates(&ntype, file_ns::sh_node_mapping_in, file_ns::sh_node_mapping_out); - node_type_gpu(&ntype, file_ns::gpu_shader_mapping); - node_type_update(&ntype, file_ns::node_shader_update_mapping); + node_type_socket_templates(&ntype, sh_node_mapping_in, sh_node_mapping_out); + node_type_gpu(&ntype, gpu_shader_mapping); + node_type_update(&ntype, node_shader_update_mapping); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_math.cc b/source/blender/nodes/shader/nodes/node_shader_math.cc index 5fca37aecb4..1e94148c5c7 100644 --- a/source/blender/nodes/shader/nodes/node_shader_math.cc +++ b/source/blender/nodes/shader/nodes/node_shader_math.cc @@ -21,13 +21,13 @@ * \ingroup shdnodes */ -#include "node_shader_util.hh" +#include "node_shader_util.h" #include "NOD_math_functions.hh" /* **************** SCALAR MATH ******************** */ -namespace blender::nodes::node_shader_math_cc { +namespace blender::nodes { static void sh_node_math_declare(NodeDeclarationBuilder &b) { @@ -44,6 +44,8 @@ static void sh_node_math_declare(NodeDeclarationBuilder &b) b.add_output<decl::Float>(N_("Value")); }; +} // namespace blender::nodes + static const char *gpu_shader_get_name(int mode) { const blender::nodes::FloatMathOperationInfo *info = @@ -159,20 +161,16 @@ static void sh_node_math_build_multi_function(blender::nodes::NodeMultiFunctionB } } -} // namespace blender::nodes::node_shader_math_cc - -void register_node_type_sh_math() +void register_node_type_sh_math(void) { - namespace file_ns = blender::nodes::node_shader_math_cc; - static bNodeType ntype; sh_fn_node_type_base(&ntype, SH_NODE_MATH, "Math", NODE_CLASS_CONVERTER, 0); - ntype.declare = file_ns::sh_node_math_declare; + ntype.declare = blender::nodes::sh_node_math_declare; node_type_label(&ntype, node_math_label); - node_type_gpu(&ntype, file_ns::gpu_shader_math); + node_type_gpu(&ntype, gpu_shader_math); node_type_update(&ntype, node_math_update); - ntype.build_multi_function = file_ns::sh_node_math_build_multi_function; + ntype.build_multi_function = sh_node_math_build_multi_function; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_mix_rgb.cc b/source/blender/nodes/shader/nodes/node_shader_mixRgb.cc index 288161d1463..06fafff578e 100644 --- a/source/blender/nodes/shader/nodes/node_shader_mix_rgb.cc +++ b/source/blender/nodes/shader/nodes/node_shader_mixRgb.cc @@ -21,9 +21,9 @@ * \ingroup shdnodes */ -#include "node_shader_util.hh" +#include "node_shader_util.h" -namespace blender::nodes::node_shader_mix_rgb_cc { +namespace blender::nodes { static void sh_node_mix_rgb_declare(NodeDeclarationBuilder &b) { @@ -34,6 +34,8 @@ static void sh_node_mix_rgb_declare(NodeDeclarationBuilder &b) b.add_output<decl::Color>(N_("Color")); }; +} // namespace blender::nodes + static void node_shader_exec_mix_rgb(void *UNUSED(data), int UNUSED(thread), bNode *node, @@ -181,20 +183,16 @@ static void sh_node_mix_rgb_build_multi_function(blender::nodes::NodeMultiFuncti builder.construct_and_set_matching_fn<MixRGBFunction>(clamp, mix_type); } -} // namespace blender::nodes::node_shader_mix_rgb_cc - -void register_node_type_sh_mix_rgb() +void register_node_type_sh_mix_rgb(void) { - namespace file_ns = blender::nodes::node_shader_mix_rgb_cc; - static bNodeType ntype; sh_fn_node_type_base(&ntype, SH_NODE_MIX_RGB, "Mix", NODE_CLASS_OP_COLOR, 0); - ntype.declare = file_ns::sh_node_mix_rgb_declare; + ntype.declare = blender::nodes::sh_node_mix_rgb_declare; node_type_label(&ntype, node_blend_label); - node_type_exec(&ntype, nullptr, nullptr, file_ns::node_shader_exec_mix_rgb); - node_type_gpu(&ntype, file_ns::gpu_shader_mix_rgb); - ntype.build_multi_function = file_ns::sh_node_mix_rgb_build_multi_function; + node_type_exec(&ntype, nullptr, nullptr, node_shader_exec_mix_rgb); + node_type_gpu(&ntype, gpu_shader_mix_rgb); + ntype.build_multi_function = sh_node_mix_rgb_build_multi_function; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_mix_shader.cc b/source/blender/nodes/shader/nodes/node_shader_mix_shader.c index 7254a0b2976..33cbf34543c 100644 --- a/source/blender/nodes/shader/nodes/node_shader_mix_shader.cc +++ b/source/blender/nodes/shader/nodes/node_shader_mix_shader.c @@ -17,19 +17,21 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_mix_shader_cc { +static bNodeSocketTemplate sh_node_mix_shader_in[] = { + {SOCK_FLOAT, N_("Fac"), 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_SHADER, N_("Shader")}, + {SOCK_SHADER, N_("Shader")}, + {-1, ""}, +}; -static void node_declare(NodeDeclarationBuilder &b) -{ - b.add_input<decl::Float>(N_("Fac")).default_value(0.5f).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Shader>(N_("Shader")); - b.add_input<decl::Shader>(N_("Shader"), "Shader_001"); - b.add_output<decl::Shader>(N_("Shader")); -} +static bNodeSocketTemplate sh_node_mix_shader_out[] = { + {SOCK_SHADER, N_("Shader")}, + {-1, ""}, +}; static int node_shader_gpu_mix_shader(GPUMaterial *mat, bNode *node, @@ -40,20 +42,16 @@ static int node_shader_gpu_mix_shader(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_mix_shader", in, out); } -} // namespace blender::nodes::node_shader_mix_shader_cc - /* node type definition */ -void register_node_type_sh_mix_shader() +void register_node_type_sh_mix_shader(void) { - namespace file_ns = blender::nodes::node_shader_mix_shader_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_MIX_SHADER, "Mix Shader", NODE_CLASS_SHADER, 0); - ntype.declare = file_ns::node_declare; - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_mix_shader); + node_type_socket_templates(&ntype, sh_node_mix_shader_in, sh_node_mix_shader_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_mix_shader); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_normal.cc b/source/blender/nodes/shader/nodes/node_shader_normal.c index 3f8e2e7fc26..83d5abcba67 100644 --- a/source/blender/nodes/shader/nodes/node_shader_normal.cc +++ b/source/blender/nodes/shader/nodes/node_shader_normal.c @@ -21,12 +21,9 @@ * \ingroup shdnodes */ -#include "node_shader_util.hh" +#include "node_shader_util.h" /* **************** NORMAL ******************** */ - -namespace blender::nodes::node_shader_normal_cc { - static bNodeSocketTemplate sh_node_normal_in[] = { {SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 1.0f, 0.0f, -1.0f, 1.0f, PROP_DIRECTION}, {-1, ""}, @@ -67,18 +64,14 @@ static int gpu_shader_normal(GPUMaterial *mat, return GPU_stack_link(mat, node, "normal_new_shading", in, out, vec); } -} // namespace blender::nodes::node_shader_normal_cc - -void register_node_type_sh_normal() +void register_node_type_sh_normal(void) { - namespace file_ns = blender::nodes::node_shader_normal_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_NORMAL, "Normal", NODE_CLASS_OP_VECTOR, 0); - node_type_socket_templates(&ntype, file_ns::sh_node_normal_in, file_ns::sh_node_normal_out); - node_type_exec(&ntype, nullptr, nullptr, file_ns::node_shader_exec_normal); - node_type_gpu(&ntype, file_ns::gpu_shader_normal); + node_type_socket_templates(&ntype, sh_node_normal_in, sh_node_normal_out); + node_type_exec(&ntype, NULL, NULL, node_shader_exec_normal); + node_type_gpu(&ntype, gpu_shader_normal); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_normal_map.cc b/source/blender/nodes/shader/nodes/node_shader_normal_map.c index ec77fcfeefe..493acb06963 100644 --- a/source/blender/nodes/shader/nodes/node_shader_normal_map.cc +++ b/source/blender/nodes/shader/nodes/node_shader_normal_map.c @@ -17,12 +17,10 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_normal_map_cc { - static bNodeSocketTemplate sh_node_normal_map_in[] = { {SOCK_FLOAT, N_("Strength"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f}, {SOCK_RGBA, N_("Color"), 0.5f, 0.5f, 1.0f, 1.0f, 0.0f, 1.0f}, @@ -36,8 +34,7 @@ static bNodeSocketTemplate sh_node_normal_map_out[] = { static void node_shader_init_normal_map(bNodeTree *UNUSED(ntree), bNode *node) { - NodeShaderNormalMap *attr = (NodeShaderNormalMap *)MEM_callocN(sizeof(NodeShaderNormalMap), - "NodeShaderNormalMap"); + NodeShaderNormalMap *attr = MEM_callocN(sizeof(NodeShaderNormalMap), "NodeShaderNormalMap"); node->storage = attr; } @@ -56,15 +53,15 @@ static int gpu_shader_normal_map(GPUMaterial *mat, GPUNodeStack *in, GPUNodeStack *out) { - NodeShaderNormalMap *nm = (NodeShaderNormalMap *)node->storage; + NodeShaderNormalMap *nm = node->storage; GPUNodeLink *strength; if (in[0].link) { strength = in[0].link; } else if (node->original) { - bNodeSocket *socket = (bNodeSocket *)BLI_findlink(&node->original->inputs, 0); - bNodeSocketValueFloat *socket_data = (bNodeSocketValueFloat *)socket->default_value; + bNodeSocket *socket = BLI_findlink(&node->original->inputs, 0); + bNodeSocketValueFloat *socket_data = socket->default_value; strength = GPU_uniform(&socket_data->value); } else { @@ -76,8 +73,8 @@ static int gpu_shader_normal_map(GPUMaterial *mat, newnormal = in[1].link; } else if (node->original) { - bNodeSocket *socket = (bNodeSocket *)BLI_findlink(&node->original->inputs, 1); - bNodeSocketValueRGBA *socket_data = (bNodeSocketValueRGBA *)socket->default_value; + bNodeSocket *socket = BLI_findlink(&node->original->inputs, 1); + bNodeSocketValueRGBA *socket_data = socket->default_value; newnormal = GPU_uniform(socket_data->value); } else { @@ -117,24 +114,19 @@ static int gpu_shader_normal_map(GPUMaterial *mat, return true; } -} // namespace blender::nodes::node_shader_normal_map_cc - /* node type definition */ -void register_node_type_sh_normal_map() +void register_node_type_sh_normal_map(void) { - namespace file_ns = blender::nodes::node_shader_normal_map_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_NORMAL_MAP, "Normal Map", NODE_CLASS_OP_VECTOR, 0); - node_type_socket_templates( - &ntype, file_ns::sh_node_normal_map_in, file_ns::sh_node_normal_map_out); + node_type_socket_templates(&ntype, sh_node_normal_map_in, sh_node_normal_map_out); node_type_size_preset(&ntype, NODE_SIZE_MIDDLE); - node_type_init(&ntype, file_ns::node_shader_init_normal_map); + node_type_init(&ntype, node_shader_init_normal_map); node_type_storage( &ntype, "NodeShaderNormalMap", node_free_standard_storage, node_copy_standard_storage); - node_type_gpu(&ntype, file_ns::gpu_shader_normal_map); - node_type_exec(&ntype, nullptr, nullptr, file_ns::node_shader_exec_normal_map); + node_type_gpu(&ntype, gpu_shader_normal_map); + node_type_exec(&ntype, NULL, NULL, node_shader_exec_normal_map); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_object_info.cc b/source/blender/nodes/shader/nodes/node_shader_object_info.c index 928756284ab..47040954c9e 100644 --- a/source/blender/nodes/shader/nodes/node_shader_object_info.cc +++ b/source/blender/nodes/shader/nodes/node_shader_object_info.c @@ -17,12 +17,10 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_object_info_cc { - static bNodeSocketTemplate sh_node_object_info_out[] = { {SOCK_VECTOR, N_("Location"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, {SOCK_RGBA, N_("Color"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, @@ -51,17 +49,13 @@ static int node_shader_gpu_object_info(GPUMaterial *mat, GPU_constant(&index)); } -} // namespace blender::nodes::node_shader_object_info_cc - -void register_node_type_sh_object_info() +void register_node_type_sh_object_info(void) { - namespace file_ns = blender::nodes::node_shader_object_info_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_OBJECT_INFO, "Object Info", NODE_CLASS_INPUT, 0); - node_type_socket_templates(&ntype, nullptr, file_ns::sh_node_object_info_out); - node_type_gpu(&ntype, file_ns::node_shader_gpu_object_info); + node_type_socket_templates(&ntype, NULL, sh_node_object_info_out); + node_type_gpu(&ntype, node_shader_gpu_object_info); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_output_aov.cc b/source/blender/nodes/shader/nodes/node_shader_output_aov.c index 363d8da3f92..32765b459ca 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_aov.cc +++ b/source/blender/nodes/shader/nodes/node_shader_output_aov.c @@ -17,14 +17,12 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" #include "BLI_hash.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_output_aov_cc { - static bNodeSocketTemplate sh_node_output_aov_in[] = { {SOCK_RGBA, N_("Color"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, {SOCK_FLOAT, N_("Value"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, @@ -33,8 +31,7 @@ static bNodeSocketTemplate sh_node_output_aov_in[] = { static void node_shader_init_output_aov(bNodeTree *UNUSED(ntree), bNode *node) { - NodeShaderOutputAOV *aov = (NodeShaderOutputAOV *)MEM_callocN(sizeof(NodeShaderOutputAOV), - "NodeShaderOutputAOV"); + NodeShaderOutputAOV *aov = MEM_callocN(sizeof(NodeShaderOutputAOV), "NodeShaderOutputAOV"); node->storage = aov; } @@ -55,21 +52,17 @@ static int node_shader_gpu_output_aov(GPUMaterial *mat, return true; } -} // namespace blender::nodes::node_shader_output_aov_cc - /* node type definition */ -void register_node_type_sh_output_aov() +void register_node_type_sh_output_aov(void) { - namespace file_ns = blender::nodes::node_shader_output_aov_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_OUTPUT_AOV, "AOV Output", NODE_CLASS_OUTPUT, 0); - node_type_socket_templates(&ntype, file_ns::sh_node_output_aov_in, nullptr); - node_type_init(&ntype, file_ns::node_shader_init_output_aov); + node_type_socket_templates(&ntype, sh_node_output_aov_in, NULL); + node_type_init(&ntype, node_shader_init_output_aov); node_type_storage( &ntype, "NodeShaderOutputAOV", node_free_standard_storage, node_copy_standard_storage); - node_type_gpu(&ntype, file_ns::node_shader_gpu_output_aov); + node_type_gpu(&ntype, node_shader_gpu_output_aov); ntype.no_muting = true; diff --git a/source/blender/nodes/shader/nodes/node_shader_output_light.cc b/source/blender/nodes/shader/nodes/node_shader_output_light.c index 00518271672..6c4837f3c6f 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_light.cc +++ b/source/blender/nodes/shader/nodes/node_shader_output_light.c @@ -17,30 +17,24 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_output_light_cc { - static bNodeSocketTemplate sh_node_output_light_in[] = { {SOCK_SHADER, N_("Surface"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, {-1, ""}, }; -} // namespace blender::nodes::node_shader_output_light_cc - /* node type definition */ -void register_node_type_sh_output_light() +void register_node_type_sh_output_light(void) { - namespace file_ns = blender::nodes::node_shader_output_light_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_OUTPUT_LIGHT, "Light Output", NODE_CLASS_OUTPUT, 0); - node_type_socket_templates(&ntype, file_ns::sh_node_output_light_in, nullptr); - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); + node_type_socket_templates(&ntype, sh_node_output_light_in, NULL); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); ntype.no_muting = true; diff --git a/source/blender/nodes/shader/nodes/node_shader_output_linestyle.cc b/source/blender/nodes/shader/nodes/node_shader_output_linestyle.c index 3c39ff8e2c9..07e253383e2 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_linestyle.cc +++ b/source/blender/nodes/shader/nodes/node_shader_output_linestyle.c @@ -17,12 +17,10 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_output_linestyle_cc { - static bNodeSocketTemplate sh_node_output_linestyle_in[] = { {SOCK_RGBA, N_("Color"), 1.0f, 0.0f, 1.0f, 1.0f}, {SOCK_FLOAT, N_("Color Fac"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, @@ -31,18 +29,14 @@ static bNodeSocketTemplate sh_node_output_linestyle_in[] = { {-1, ""}, }; -} // namespace blender::nodes::node_shader_output_linestyle_cc - /* node type definition */ -void register_node_type_sh_output_linestyle() +void register_node_type_sh_output_linestyle(void) { - namespace file_ns = blender::nodes::node_shader_output_linestyle_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_OUTPUT_LINESTYLE, "Line Style Output", NODE_CLASS_OUTPUT, 0); - node_type_socket_templates(&ntype, file_ns::sh_node_output_linestyle_in, nullptr); - node_type_init(&ntype, nullptr); + node_type_socket_templates(&ntype, sh_node_output_linestyle_in, NULL); + node_type_init(&ntype, NULL); ntype.no_muting = true; diff --git a/source/blender/nodes/shader/nodes/node_shader_output_material.cc b/source/blender/nodes/shader/nodes/node_shader_output_material.c index c111115f108..41932cca6a3 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_material.cc +++ b/source/blender/nodes/shader/nodes/node_shader_output_material.c @@ -17,14 +17,12 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" #include "BKE_scene.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_output_material_cc { - static bNodeSocketTemplate sh_node_output_material_in[] = { {SOCK_SHADER, N_("Surface")}, {SOCK_SHADER, N_("Volume")}, @@ -75,20 +73,16 @@ static int node_shader_gpu_output_material(GPUMaterial *mat, return true; } -} // namespace blender::nodes::node_shader_output_material_cc - /* node type definition */ -void register_node_type_sh_output_material() +void register_node_type_sh_output_material(void) { - namespace file_ns = blender::nodes::node_shader_output_material_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_OUTPUT_MATERIAL, "Material Output", NODE_CLASS_OUTPUT, 0); - node_type_socket_templates(&ntype, file_ns::sh_node_output_material_in, nullptr); - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_output_material); + node_type_socket_templates(&ntype, sh_node_output_material_in, NULL); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_output_material); ntype.no_muting = true; diff --git a/source/blender/nodes/shader/nodes/node_shader_output_world.cc b/source/blender/nodes/shader/nodes/node_shader_output_world.c index 545342ccaa5..09eca7f712e 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_world.cc +++ b/source/blender/nodes/shader/nodes/node_shader_output_world.c @@ -17,12 +17,10 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_output_world_cc { - static bNodeSocketTemplate sh_node_output_world_in[] = { {SOCK_SHADER, N_("Surface"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, {SOCK_SHADER, N_("Volume"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, @@ -43,20 +41,16 @@ static int node_shader_gpu_output_world(GPUMaterial *mat, return true; } -} // namespace blender::nodes::node_shader_output_world_cc - /* node type definition */ -void register_node_type_sh_output_world() +void register_node_type_sh_output_world(void) { - namespace file_ns = blender::nodes::node_shader_output_world_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_OUTPUT_WORLD, "World Output", NODE_CLASS_OUTPUT, 0); - node_type_socket_templates(&ntype, file_ns::sh_node_output_world_in, nullptr); - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_output_world); + node_type_socket_templates(&ntype, sh_node_output_world_in, NULL); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_output_world); ntype.no_muting = true; diff --git a/source/blender/nodes/shader/nodes/node_shader_particle_info.cc b/source/blender/nodes/shader/nodes/node_shader_particle_info.c index 0f71eebc050..c6eabc3b2cb 100644 --- a/source/blender/nodes/shader/nodes/node_shader_particle_info.cc +++ b/source/blender/nodes/shader/nodes/node_shader_particle_info.c @@ -17,12 +17,9 @@ * All rights reserved. */ +#include "../node_shader_util.h" #include "RE_texture.h" -#include "node_shader_util.hh" - -namespace blender::nodes::node_shader_particle_info_cc { - static bNodeSocketTemplate outputs[] = { {SOCK_FLOAT, "Index"}, {SOCK_FLOAT, "Random"}, @@ -64,19 +61,15 @@ static int gpu_shader_particle_info(GPUMaterial *mat, GPU_builtin(GPU_PARTICLE_ANG_VELOCITY)); } -} // namespace blender::nodes::node_shader_particle_info_cc - /* node type definition */ -void register_node_type_sh_particle_info() +void register_node_type_sh_particle_info(void) { - namespace file_ns = blender::nodes::node_shader_particle_info_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_PARTICLE_INFO, "Particle Info", NODE_CLASS_INPUT, 0); - node_type_socket_templates(&ntype, nullptr, file_ns::outputs); - node_type_exec(&ntype, nullptr, nullptr, file_ns::node_shader_exec_particle_info); - node_type_gpu(&ntype, file_ns::gpu_shader_particle_info); + node_type_socket_templates(&ntype, NULL, outputs); + node_type_exec(&ntype, NULL, NULL, node_shader_exec_particle_info); + node_type_gpu(&ntype, gpu_shader_particle_info); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_rgb.cc b/source/blender/nodes/shader/nodes/node_shader_rgb.c index 65dfba604af..0bdef9a2a17 100644 --- a/source/blender/nodes/shader/nodes/node_shader_rgb.cc +++ b/source/blender/nodes/shader/nodes/node_shader_rgb.c @@ -21,12 +21,9 @@ * \ingroup shdnodes */ -#include "node_shader_util.hh" +#include "node_shader_util.h" /* **************** RGB ******************** */ - -namespace blender::nodes::node_shader_rgb_cc { - static bNodeSocketTemplate sh_node_rgb_out[] = { {SOCK_RGBA, N_("Color"), 0.5f, 0.5f, 0.5f, 1.0f}, {-1, ""}, @@ -42,17 +39,13 @@ static int gpu_shader_rgb(GPUMaterial *mat, return GPU_stack_link(mat, node, "set_rgba", in, out, link); } -} // namespace blender::nodes::node_shader_rgb_cc - -void register_node_type_sh_rgb() +void register_node_type_sh_rgb(void) { - namespace file_ns = blender::nodes::node_shader_rgb_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_RGB, "RGB", NODE_CLASS_INPUT, 0); - node_type_socket_templates(&ntype, nullptr, file_ns::sh_node_rgb_out); - node_type_gpu(&ntype, file_ns::gpu_shader_rgb); + node_type_socket_templates(&ntype, NULL, sh_node_rgb_out); + node_type_gpu(&ntype, gpu_shader_rgb); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_rgb_to_bw.cc b/source/blender/nodes/shader/nodes/node_shader_rgb_to_bw.cc deleted file mode 100644 index 7d6fec4b7c5..00000000000 --- a/source/blender/nodes/shader/nodes/node_shader_rgb_to_bw.cc +++ /dev/null @@ -1,74 +0,0 @@ -/* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2005 Blender Foundation. - * All rights reserved. - */ - -/** \file - * \ingroup shdnodes - */ - -#include "IMB_colormanagement.h" - -#include "node_shader_util.hh" - -namespace blender::nodes::node_shader_rgb_to_bw_cc { - -static void sh_node_rgbtobw_declare(NodeDeclarationBuilder &b) -{ - b.add_input<decl::Color>(N_("Color")).default_value({0.5f, 0.5f, 0.5f, 1.0f}); - b.add_output<decl::Float>(N_("Val")); -}; - -static void node_shader_exec_rgbtobw(void *UNUSED(data), - int UNUSED(thread), - bNode *UNUSED(node), - bNodeExecData *UNUSED(execdata), - bNodeStack **in, - bNodeStack **out) -{ - /* Stack order out: BW. */ - /* Stack order in: COL. */ - float col[3]; - nodestack_get_vec(col, SOCK_VECTOR, in[0]); - - out[0]->vec[0] = IMB_colormanagement_get_luminance(col); -} - -static int gpu_shader_rgbtobw(GPUMaterial *mat, - bNode *node, - bNodeExecData *UNUSED(execdata), - GPUNodeStack *in, - GPUNodeStack *out) -{ - return GPU_stack_link(mat, node, "rgbtobw", in, out); -} - -} // namespace blender::nodes::node_shader_rgb_to_bw_cc - -void register_node_type_sh_rgbtobw() -{ - namespace file_ns = blender::nodes::node_shader_rgb_to_bw_cc; - - static bNodeType ntype; - - sh_node_type_base(&ntype, SH_NODE_RGBTOBW, "RGB to BW", NODE_CLASS_CONVERTER, 0); - ntype.declare = file_ns::sh_node_rgbtobw_declare; - node_type_exec(&ntype, nullptr, nullptr, file_ns::node_shader_exec_rgbtobw); - node_type_gpu(&ntype, file_ns::gpu_shader_rgbtobw); - - nodeRegisterType(&ntype); -} diff --git a/source/blender/nodes/shader/nodes/node_shader_script.cc b/source/blender/nodes/shader/nodes/node_shader_script.c index 7dbf2449832..42ab272de0e 100644 --- a/source/blender/nodes/shader/nodes/node_shader_script.cc +++ b/source/blender/nodes/shader/nodes/node_shader_script.c @@ -21,22 +21,19 @@ * \ingroup shdnodes */ -#include "node_shader_util.hh" +#include "node_shader_util.h" /* **************** Script ******************** */ -namespace blender::nodes::node_shader_script_cc { - static void init(bNodeTree *UNUSED(ntree), bNode *node) { - NodeShaderScript *nss = (NodeShaderScript *)MEM_callocN(sizeof(NodeShaderScript), - "shader script node"); + NodeShaderScript *nss = MEM_callocN(sizeof(NodeShaderScript), "shader script node"); node->storage = nss; } static void node_free_script(bNode *node) { - NodeShaderScript *nss = (NodeShaderScript *)node->storage; + NodeShaderScript *nss = node->storage; if (nss) { if (nss->bytecode) { @@ -51,28 +48,23 @@ static void node_copy_script(bNodeTree *UNUSED(dest_ntree), bNode *dest_node, const bNode *src_node) { - NodeShaderScript *src_nss = (NodeShaderScript *)src_node->storage; - NodeShaderScript *dest_nss = (NodeShaderScript *)MEM_dupallocN(src_nss); + NodeShaderScript *src_nss = src_node->storage; + NodeShaderScript *dest_nss = MEM_dupallocN(src_nss); if (src_nss->bytecode) { - dest_nss->bytecode = (char *)MEM_dupallocN(src_nss->bytecode); + dest_nss->bytecode = MEM_dupallocN(src_nss->bytecode); } dest_node->storage = dest_nss; } -} // namespace blender::nodes::node_shader_script_cc - -void register_node_type_sh_script() +void register_node_type_sh_script(void) { - namespace file_ns = blender::nodes::node_shader_script_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_SCRIPT, "Script", NODE_CLASS_SCRIPT, 0); - node_type_init(&ntype, file_ns::init); - node_type_storage( - &ntype, "NodeShaderScript", file_ns::node_free_script, file_ns::node_copy_script); + node_type_init(&ntype, init); + node_type_storage(&ntype, "NodeShaderScript", node_free_script, node_copy_script); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_separate_hsv.cc b/source/blender/nodes/shader/nodes/node_shader_separate_hsv.cc deleted file mode 100644 index 242bc5f9781..00000000000 --- a/source/blender/nodes/shader/nodes/node_shader_separate_hsv.cc +++ /dev/null @@ -1,75 +0,0 @@ -/* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2021 Blender Foundation. - * All rights reserved. - */ - -/** \file - * \ingroup shdnodes - */ - -#include "node_shader_util.hh" - -namespace blender::nodes::node_shader_separate_hsv_cc { - -static bNodeSocketTemplate sh_node_sephsv_in[] = { - {SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f}, - {-1, ""}, -}; -static bNodeSocketTemplate sh_node_sephsv_out[] = { - {SOCK_FLOAT, N_("H")}, - {SOCK_FLOAT, N_("S")}, - {SOCK_FLOAT, N_("V")}, - {-1, ""}, -}; - -static void node_shader_exec_sephsv(void *UNUSED(data), - int UNUSED(thread), - bNode *UNUSED(node), - bNodeExecData *UNUSED(execdata), - bNodeStack **in, - bNodeStack **out) -{ - float col[3]; - nodestack_get_vec(col, SOCK_VECTOR, in[0]); - - rgb_to_hsv(col[0], col[1], col[2], &out[0]->vec[0], &out[1]->vec[0], &out[2]->vec[0]); -} - -static int gpu_shader_sephsv(GPUMaterial *mat, - bNode *node, - bNodeExecData *UNUSED(execdata), - GPUNodeStack *in, - GPUNodeStack *out) -{ - return GPU_stack_link(mat, node, "separate_hsv", in, out); -} - -} // namespace blender::nodes::node_shader_separate_hsv_cc - -void register_node_type_sh_sephsv() -{ - namespace file_ns = blender::nodes::node_shader_separate_hsv_cc; - - static bNodeType ntype; - - sh_node_type_base(&ntype, SH_NODE_SEPHSV, "Separate HSV", NODE_CLASS_CONVERTER, 0); - node_type_socket_templates(&ntype, file_ns::sh_node_sephsv_in, file_ns::sh_node_sephsv_out); - node_type_exec(&ntype, nullptr, nullptr, file_ns::node_shader_exec_sephsv); - node_type_gpu(&ntype, file_ns::gpu_shader_sephsv); - - nodeRegisterType(&ntype); -} diff --git a/source/blender/nodes/shader/nodes/node_shader_combine_hsv.cc b/source/blender/nodes/shader/nodes/node_shader_sepcombHSV.c index 4d4879fd060..dfecb830b35 100644 --- a/source/blender/nodes/shader/nodes/node_shader_combine_hsv.cc +++ b/source/blender/nodes/shader/nodes/node_shader_sepcombHSV.c @@ -21,10 +21,55 @@ * \ingroup shdnodes */ -#include "node_shader_util.hh" +#include "node_shader_util.h" -namespace blender::nodes::node_shader_combine_hsv_cc { +/* **************** SEPARATE HSV ******************** */ +static bNodeSocketTemplate sh_node_sephsv_in[] = { + {SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f}, + {-1, ""}, +}; +static bNodeSocketTemplate sh_node_sephsv_out[] = { + {SOCK_FLOAT, N_("H")}, + {SOCK_FLOAT, N_("S")}, + {SOCK_FLOAT, N_("V")}, + {-1, ""}, +}; + +static void node_shader_exec_sephsv(void *UNUSED(data), + int UNUSED(thread), + bNode *UNUSED(node), + bNodeExecData *UNUSED(execdata), + bNodeStack **in, + bNodeStack **out) +{ + float col[3]; + nodestack_get_vec(col, SOCK_VECTOR, in[0]); + + rgb_to_hsv(col[0], col[1], col[2], &out[0]->vec[0], &out[1]->vec[0], &out[2]->vec[0]); +} + +static int gpu_shader_sephsv(GPUMaterial *mat, + bNode *node, + bNodeExecData *UNUSED(execdata), + GPUNodeStack *in, + GPUNodeStack *out) +{ + return GPU_stack_link(mat, node, "separate_hsv", in, out); +} + +void register_node_type_sh_sephsv(void) +{ + static bNodeType ntype; + + sh_node_type_base(&ntype, SH_NODE_SEPHSV, "Separate HSV", NODE_CLASS_CONVERTER, 0); + node_type_socket_templates(&ntype, sh_node_sephsv_in, sh_node_sephsv_out); + node_type_exec(&ntype, NULL, NULL, node_shader_exec_sephsv); + node_type_gpu(&ntype, gpu_shader_sephsv); + nodeRegisterType(&ntype); +} + +/* **************** COMBINE HSV ******************** */ static bNodeSocketTemplate sh_node_combhsv_in[] = { {SOCK_FLOAT, N_("H"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_UNSIGNED}, {SOCK_FLOAT, N_("S"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, PROP_UNSIGNED}, @@ -60,18 +105,14 @@ static int gpu_shader_combhsv(GPUMaterial *mat, return GPU_stack_link(mat, node, "combine_hsv", in, out); } -} // namespace blender::nodes::node_shader_combine_hsv_cc - -void register_node_type_sh_combhsv() +void register_node_type_sh_combhsv(void) { - namespace file_ns = blender::nodes::node_shader_combine_hsv_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_COMBHSV, "Combine HSV", NODE_CLASS_CONVERTER, 0); - node_type_socket_templates(&ntype, file_ns::sh_node_combhsv_in, file_ns::sh_node_combhsv_out); - node_type_exec(&ntype, nullptr, nullptr, file_ns::node_shader_exec_combhsv); - node_type_gpu(&ntype, file_ns::gpu_shader_combhsv); + node_type_socket_templates(&ntype, sh_node_combhsv_in, sh_node_combhsv_out); + node_type_exec(&ntype, NULL, NULL, node_shader_exec_combhsv); + node_type_gpu(&ntype, gpu_shader_combhsv); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_separate_rgb.cc b/source/blender/nodes/shader/nodes/node_shader_sepcombRGB.cc index 2f57fe31f47..08a9e01786e 100644 --- a/source/blender/nodes/shader/nodes/node_shader_separate_rgb.cc +++ b/source/blender/nodes/shader/nodes/node_shader_sepcombRGB.cc @@ -13,7 +13,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - * The Original Code is Copyright (C) 2021 Blender Foundation. + * The Original Code is Copyright (C) 2006 Blender Foundation. * All rights reserved. */ @@ -21,9 +21,9 @@ * \ingroup shdnodes */ -#include "node_shader_util.hh" +#include "node_shader_util.h" -namespace blender::nodes::node_shader_separate_rgb_cc { +namespace blender::nodes { static void sh_node_seprgb_declare(NodeDeclarationBuilder &b) { @@ -34,6 +34,8 @@ static void sh_node_seprgb_declare(NodeDeclarationBuilder &b) b.add_output<decl::Float>(N_("B")); }; +} // namespace blender::nodes + static void node_shader_exec_seprgb(void *UNUSED(data), int UNUSED(thread), bNode *UNUSED(node), @@ -101,19 +103,75 @@ static void sh_node_seprgb_build_multi_function(blender::nodes::NodeMultiFunctio builder.set_matching_fn(fn); } -} // namespace blender::nodes::node_shader_separate_rgb_cc +void register_node_type_sh_seprgb(void) +{ + static bNodeType ntype; + + sh_fn_node_type_base(&ntype, SH_NODE_SEPRGB, "Separate RGB", NODE_CLASS_CONVERTER, 0); + ntype.declare = blender::nodes::sh_node_seprgb_declare; + node_type_exec(&ntype, nullptr, nullptr, node_shader_exec_seprgb); + node_type_gpu(&ntype, gpu_shader_seprgb); + ntype.build_multi_function = sh_node_seprgb_build_multi_function; + + nodeRegisterType(&ntype); +} + +namespace blender::nodes { + +static void sh_node_combrgb_declare(NodeDeclarationBuilder &b) +{ + b.is_function_node(); + b.add_input<decl::Float>(N_("R")).min(0.0f).max(1.0f); + b.add_input<decl::Float>(N_("G")).min(0.0f).max(1.0f); + b.add_input<decl::Float>(N_("B")).min(0.0f).max(1.0f); + b.add_output<decl::Color>(N_("Image")); +}; + +} // namespace blender::nodes + +static void node_shader_exec_combrgb(void *UNUSED(data), + int UNUSED(thread), + bNode *UNUSED(node), + bNodeExecData *UNUSED(execdata), + bNodeStack **in, + bNodeStack **out) +{ + float r, g, b; + nodestack_get_vec(&r, SOCK_FLOAT, in[0]); + nodestack_get_vec(&g, SOCK_FLOAT, in[1]); + nodestack_get_vec(&b, SOCK_FLOAT, in[2]); + + out[0]->vec[0] = r; + out[0]->vec[1] = g; + out[0]->vec[2] = b; +} + +static int gpu_shader_combrgb(GPUMaterial *mat, + bNode *node, + bNodeExecData *UNUSED(execdata), + GPUNodeStack *in, + GPUNodeStack *out) +{ + return GPU_stack_link(mat, node, "combine_rgb", in, out); +} -void register_node_type_sh_seprgb() +static void sh_node_combrgb_build_multi_function(blender::nodes::NodeMultiFunctionBuilder &builder) { - namespace file_ns = blender::nodes::node_shader_separate_rgb_cc; + static blender::fn::CustomMF_SI_SI_SI_SO<float, float, float, blender::ColorGeometry4f> fn{ + "Combine RGB", + [](float r, float g, float b) { return blender::ColorGeometry4f(r, g, b, 1.0f); }}; + builder.set_matching_fn(fn); +} +void register_node_type_sh_combrgb(void) +{ static bNodeType ntype; - sh_fn_node_type_base(&ntype, SH_NODE_SEPRGB, "Separate RGB", NODE_CLASS_CONVERTER, 0); - ntype.declare = file_ns::sh_node_seprgb_declare; - node_type_exec(&ntype, nullptr, nullptr, file_ns::node_shader_exec_seprgb); - node_type_gpu(&ntype, file_ns::gpu_shader_seprgb); - ntype.build_multi_function = file_ns::sh_node_seprgb_build_multi_function; + sh_fn_node_type_base(&ntype, SH_NODE_COMBRGB, "Combine RGB", NODE_CLASS_CONVERTER, 0); + ntype.declare = blender::nodes::sh_node_combrgb_declare; + node_type_exec(&ntype, nullptr, nullptr, node_shader_exec_combrgb); + node_type_gpu(&ntype, gpu_shader_combrgb); + ntype.build_multi_function = sh_node_combrgb_build_multi_function; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_separate_xyz.cc b/source/blender/nodes/shader/nodes/node_shader_sepcombXYZ.cc index ee2335978a3..1bbfa629462 100644 --- a/source/blender/nodes/shader/nodes/node_shader_separate_xyz.cc +++ b/source/blender/nodes/shader/nodes/node_shader_sepcombXYZ.cc @@ -13,7 +13,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - * The Original Code is Copyright (C) 2021 Blender Foundation. + * The Original Code is Copyright (C) 2014 Blender Foundation. * All rights reserved. */ @@ -21,9 +21,9 @@ * \ingroup shdnodes */ -#include "node_shader_util.hh" +#include "node_shader_util.h" -namespace blender::nodes::node_shader_separate_xyz_cc { +namespace blender::nodes { static void sh_node_sepxyz_declare(NodeDeclarationBuilder &b) { @@ -34,6 +34,8 @@ static void sh_node_sepxyz_declare(NodeDeclarationBuilder &b) b.add_output<decl::Float>(N_("Z")); }; +} // namespace blender::nodes + static int gpu_shader_sepxyz(GPUMaterial *mat, bNode *node, bNodeExecData *UNUSED(execdata), @@ -86,18 +88,55 @@ static void sh_node_sepxyz_build_multi_function(blender::nodes::NodeMultiFunctio builder.set_matching_fn(separate_fn); } -} // namespace blender::nodes::node_shader_separate_xyz_cc +void register_node_type_sh_sepxyz(void) +{ + static bNodeType ntype; + + sh_fn_node_type_base(&ntype, SH_NODE_SEPXYZ, "Separate XYZ", NODE_CLASS_CONVERTER, 0); + ntype.declare = blender::nodes::sh_node_sepxyz_declare; + node_type_gpu(&ntype, gpu_shader_sepxyz); + ntype.build_multi_function = sh_node_sepxyz_build_multi_function; + + nodeRegisterType(&ntype); +} + +namespace blender::nodes { + +static void sh_node_combxyz_declare(NodeDeclarationBuilder &b) +{ + b.is_function_node(); + b.add_input<decl::Float>(N_("X")).min(-10000.0f).max(10000.0f); + b.add_input<decl::Float>(N_("Y")).min(-10000.0f).max(10000.0f); + b.add_input<decl::Float>(N_("Z")).min(-10000.0f).max(10000.0f); + b.add_output<decl::Vector>(N_("Vector")); +}; + +} // namespace blender::nodes + +static int gpu_shader_combxyz(GPUMaterial *mat, + bNode *node, + bNodeExecData *UNUSED(execdata), + GPUNodeStack *in, + GPUNodeStack *out) +{ + return GPU_stack_link(mat, node, "combine_xyz", in, out); +} -void register_node_type_sh_sepxyz() +static void sh_node_combxyz_build_multi_function(blender::nodes::NodeMultiFunctionBuilder &builder) { - namespace file_ns = blender::nodes::node_shader_separate_xyz_cc; + static blender::fn::CustomMF_SI_SI_SI_SO<float, float, float, blender::float3> fn{ + "Combine Vector", [](float x, float y, float z) { return blender::float3(x, y, z); }}; + builder.set_matching_fn(fn); +} +void register_node_type_sh_combxyz(void) +{ static bNodeType ntype; - sh_fn_node_type_base(&ntype, SH_NODE_SEPXYZ, "Separate XYZ", NODE_CLASS_CONVERTER, 0); - ntype.declare = file_ns::sh_node_sepxyz_declare; - node_type_gpu(&ntype, file_ns::gpu_shader_sepxyz); - ntype.build_multi_function = file_ns::sh_node_sepxyz_build_multi_function; + sh_fn_node_type_base(&ntype, SH_NODE_COMBXYZ, "Combine XYZ", NODE_CLASS_CONVERTER, 0); + ntype.declare = blender::nodes::sh_node_combxyz_declare; + node_type_gpu(&ntype, gpu_shader_combxyz); + ntype.build_multi_function = sh_node_combxyz_build_multi_function; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_shader_to_rgb.cc b/source/blender/nodes/shader/nodes/node_shader_shaderToRgb.c index 3791eb9449f..25c30aa4081 100644 --- a/source/blender/nodes/shader/nodes/node_shader_shader_to_rgb.cc +++ b/source/blender/nodes/shader/nodes/node_shader_shaderToRgb.c @@ -17,12 +17,10 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_shader_to_rgb_cc { - static bNodeSocketTemplate sh_node_shadertorgb_in[] = { {SOCK_SHADER, N_("Shader")}, {-1, ""}, @@ -47,21 +45,16 @@ static int node_shader_gpu_shadertorgb(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_shader_to_rgba", in, out); } -} // namespace blender::nodes::node_shader_shader_to_rgb_cc - /* node type definition */ -void register_node_type_sh_shadertorgb() +void register_node_type_sh_shadertorgb(void) { - namespace file_ns = blender::nodes::node_shader_shader_to_rgb_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_SHADERTORGB, "Shader to RGB", NODE_CLASS_CONVERTER, 0); - node_type_socket_templates( - &ntype, file_ns::sh_node_shadertorgb_in, file_ns::sh_node_shadertorgb_out); - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_shadertorgb); + node_type_socket_templates(&ntype, sh_node_shadertorgb_in, sh_node_shadertorgb_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_shadertorgb); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_squeeze.cc b/source/blender/nodes/shader/nodes/node_shader_squeeze.c index 55c25ffbdb7..ca7bdf41df9 100644 --- a/source/blender/nodes/shader/nodes/node_shader_squeeze.cc +++ b/source/blender/nodes/shader/nodes/node_shader_squeeze.c @@ -21,12 +21,9 @@ * \ingroup shdnodes */ -#include "node_shader_util.hh" +#include "node_shader_util.h" /* **************** VALUE SQUEEZE ******************** */ - -namespace blender::nodes::node_shader_squeeze_cc { - static bNodeSocketTemplate sh_node_squeeze_in[] = { {SOCK_FLOAT, N_("Value"), 0.0f, 0.0f, 0.0f, 0.0f, -100.0f, 100.0f, PROP_NONE}, {SOCK_FLOAT, N_("Width"), 1.0f, 0.0f, 0.0f, 0.0f, -100.0f, 100.0f, PROP_NONE}, @@ -60,19 +57,15 @@ static int gpu_shader_squeeze(GPUMaterial *mat, return GPU_stack_link(mat, node, "squeeze", in, out); } -} // namespace blender::nodes::node_shader_squeeze_cc - -void register_node_type_sh_squeeze() +void register_node_type_sh_squeeze(void) { - namespace file_ns = blender::nodes::node_shader_squeeze_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_SQUEEZE, "Squeeze Value", NODE_CLASS_CONVERTER, 0); - node_type_socket_templates(&ntype, file_ns::sh_node_squeeze_in, file_ns::sh_node_squeeze_out); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_exec(&ntype, nullptr, nullptr, file_ns::node_shader_exec_squeeze); - node_type_gpu(&ntype, file_ns::gpu_shader_squeeze); + node_type_socket_templates(&ntype, sh_node_squeeze_in, sh_node_squeeze_out); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL, NULL, node_shader_exec_squeeze); + node_type_gpu(&ntype, gpu_shader_squeeze); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.cc b/source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c index 943ef45cc44..85a4a6aa425 100644 --- a/source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.cc +++ b/source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c @@ -17,26 +17,24 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_subsurface_scattering_cc { - -static void node_declare(NodeDeclarationBuilder &b) -{ - b.add_input<decl::Color>(N_("Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f}); - b.add_input<decl::Float>(N_("Scale")).default_value(1.0f).min(0.0f).max(1000.0f); - b.add_input<decl::Vector>(N_("Radius")) - .default_value({1.0f, 0.2f, 0.1f}) - .min(0.0f) - .max(100.0f) - .compact(); - b.add_input<decl::Float>(N_("IOR")).default_value(1.4f).min(0.0f).max(3.8f).subtype(PROP_FACTOR); - b.add_input<decl::Float>(N_("Anisotropy")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Vector>(N_("Normal")).min(-1.0f).max(1.0f).hide_value(); - b.add_output<decl::Shader>(N_("BSSRDF")); -} +static bNodeSocketTemplate sh_node_subsurface_scattering_in[] = { + {SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + {SOCK_FLOAT, N_("Scale"), 1.0, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + {SOCK_VECTOR, N_("Radius"), 1.0f, 0.2f, 0.1f, 0.0f, 0.0f, 100.0f, PROP_NONE, SOCK_COMPACT}, + {SOCK_FLOAT, N_("IOR"), 1.4f, 0.0f, 0.0f, 0.0f, 1.01f, 3.8f, PROP_FACTOR}, + {SOCK_FLOAT, N_("Anisotropy"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + {-1, ""}, +}; + +static bNodeSocketTemplate sh_node_subsurface_scattering_out[] = { + {SOCK_SHADER, N_("BSSRDF")}, + {-1, ""}, +}; static void node_shader_init_subsurface_scattering(bNodeTree *UNUSED(ntree), bNode *node) { @@ -55,14 +53,14 @@ static int node_shader_gpu_subsurface_scattering(GPUMaterial *mat, } if (node->sss_id > 0) { - bNodeSocket *socket = (bNodeSocket *)BLI_findlink(&node->original->inputs, 2); - bNodeSocketValueRGBA *socket_data = (bNodeSocketValueRGBA *)socket->default_value; + bNodeSocket *socket = BLI_findlink(&node->original->inputs, 2); + bNodeSocketValueRGBA *socket_data = socket->default_value; /* For some reason it seems that the socket value is in ARGB format. */ GPU_material_sss_profile_create(mat, &socket_data->value[1]); /* sss_id is 0 only the node is not connected to any output. * In this case flagging the material would trigger a bug (see T68736). */ - GPU_material_flag_set(mat, (eGPUMatFlag)(GPU_MATFLAG_DIFFUSE | GPU_MATFLAG_SSS)); + GPU_material_flag_set(mat, GPU_MATFLAG_DIFFUSE | GPU_MATFLAG_SSS); } return GPU_stack_link( @@ -73,30 +71,27 @@ static void node_shader_update_subsurface_scattering(bNodeTree *ntree, bNode *no { const int sss_method = node->custom1; - LISTBASE_FOREACH (bNodeSocket *, sock, &node->inputs) { + for (bNodeSocket *sock = node->inputs.first; sock; sock = sock->next) { if (STR_ELEM(sock->name, "IOR", "Anisotropy")) { nodeSetSocketAvailability(ntree, sock, sss_method != SHD_SUBSURFACE_BURLEY); } } } -} // namespace blender::nodes::node_shader_subsurface_scattering_cc - /* node type definition */ -void register_node_type_sh_subsurface_scattering() +void register_node_type_sh_subsurface_scattering(void) { - namespace file_ns = blender::nodes::node_shader_subsurface_scattering_cc; - static bNodeType ntype; sh_node_type_base( &ntype, SH_NODE_SUBSURFACE_SCATTERING, "Subsurface Scattering", NODE_CLASS_SHADER, 0); - ntype.declare = file_ns::node_declare; + node_type_socket_templates( + &ntype, sh_node_subsurface_scattering_in, sh_node_subsurface_scattering_out); node_type_size_preset(&ntype, NODE_SIZE_MIDDLE); - node_type_init(&ntype, file_ns::node_shader_init_subsurface_scattering); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_subsurface_scattering); - node_type_update(&ntype, file_ns::node_shader_update_subsurface_scattering); + node_type_init(&ntype, node_shader_init_subsurface_scattering); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_subsurface_scattering); + node_type_update(&ntype, node_shader_update_subsurface_scattering); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_tangent.cc b/source/blender/nodes/shader/nodes/node_shader_tangent.c index 90148c5bf4c..2c12bf9bc01 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tangent.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tangent.c @@ -17,12 +17,10 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_tangent_cc { - static bNodeSocketTemplate sh_node_tangent_out[] = { {SOCK_VECTOR, N_("Tangent"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, {-1, ""}, @@ -30,8 +28,7 @@ static bNodeSocketTemplate sh_node_tangent_out[] = { static void node_shader_init_tangent(bNodeTree *UNUSED(ntree), bNode *node) { - NodeShaderTangent *attr = (NodeShaderTangent *)MEM_callocN(sizeof(NodeShaderTangent), - "NodeShaderTangent"); + NodeShaderTangent *attr = MEM_callocN(sizeof(NodeShaderTangent), "NodeShaderTangent"); attr->axis = SHD_TANGENT_AXIS_Z; node->storage = attr; } @@ -42,7 +39,7 @@ static int node_shader_gpu_tangent(GPUMaterial *mat, GPUNodeStack *in, GPUNodeStack *out) { - NodeShaderTangent *attr = (NodeShaderTangent *)node->storage; + NodeShaderTangent *attr = node->storage; if (attr->direction_type == SHD_TANGENT_UVMAP) { return GPU_stack_link( @@ -71,20 +68,16 @@ static int node_shader_gpu_tangent(GPUMaterial *mat, GPU_builtin(GPU_OBJECT_MATRIX)); } -} // namespace blender::nodes::node_shader_tangent_cc - /* node type definition */ -void register_node_type_sh_tangent() +void register_node_type_sh_tangent(void) { - namespace file_ns = blender::nodes::node_shader_tangent_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_TANGENT, "Tangent", NODE_CLASS_INPUT, 0); - node_type_socket_templates(&ntype, nullptr, file_ns::sh_node_tangent_out); + node_type_socket_templates(&ntype, NULL, sh_node_tangent_out); node_type_size_preset(&ntype, NODE_SIZE_MIDDLE); - node_type_init(&ntype, file_ns::node_shader_init_tangent); - node_type_gpu(&ntype, file_ns::node_shader_gpu_tangent); + node_type_init(&ntype, node_shader_init_tangent); + node_type_gpu(&ntype, node_shader_gpu_tangent); node_type_storage( &ntype, "NodeShaderTangent", node_free_standard_storage, node_copy_standard_storage); diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_brick.cc b/source/blender/nodes/shader/nodes/node_shader_tex_brick.cc index 14f0b71b957..b840bd75e42 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_brick.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_brick.cc @@ -17,12 +17,12 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" #include "BLI_float2.hh" #include "BLI_float4.hh" -namespace blender::nodes::node_shader_tex_brick_cc { +namespace blender::nodes { static void sh_node_tex_brick_declare(NodeDeclarationBuilder &b) { @@ -57,6 +57,8 @@ static void sh_node_tex_brick_declare(NodeDeclarationBuilder &b) b.add_output<decl::Float>(N_("Fac")); }; +} // namespace blender::nodes + static void node_shader_init_tex_brick(bNodeTree *UNUSED(ntree), bNode *node) { NodeTexBrick *tex = (NodeTexBrick *)MEM_callocN(sizeof(NodeTexBrick), "NodeTexBrick"); @@ -99,6 +101,8 @@ static int node_shader_gpu_tex_brick(GPUMaterial *mat, GPU_constant(&squash_freq)); } +namespace blender::nodes { + class BrickFunction : public fn::MultiFunction { private: const float offset_; @@ -262,22 +266,20 @@ static void sh_node_brick_build_multi_function(blender::nodes::NodeMultiFunction tex->offset, tex->offset_freq, tex->squash, tex->squash_freq); } -} // namespace blender::nodes::node_shader_tex_brick_cc +} // namespace blender::nodes -void register_node_type_sh_tex_brick() +void register_node_type_sh_tex_brick(void) { - namespace file_ns = blender::nodes::node_shader_tex_brick_cc; - static bNodeType ntype; sh_fn_node_type_base(&ntype, SH_NODE_TEX_BRICK, "Brick Texture", NODE_CLASS_TEXTURE, 0); - ntype.declare = file_ns::sh_node_tex_brick_declare; + ntype.declare = blender::nodes::sh_node_tex_brick_declare; node_type_size_preset(&ntype, NODE_SIZE_MIDDLE); - node_type_init(&ntype, file_ns::node_shader_init_tex_brick); + node_type_init(&ntype, node_shader_init_tex_brick); node_type_storage( &ntype, "NodeTexBrick", node_free_standard_storage, node_copy_standard_storage); - node_type_gpu(&ntype, file_ns::node_shader_gpu_tex_brick); - ntype.build_multi_function = file_ns::sh_node_brick_build_multi_function; + node_type_gpu(&ntype, node_shader_gpu_tex_brick); + ntype.build_multi_function = blender::nodes::sh_node_brick_build_multi_function; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_checker.cc b/source/blender/nodes/shader/nodes/node_shader_tex_checker.cc index 714fdc129e5..7c1223a6a32 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_checker.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_checker.cc @@ -17,9 +17,9 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" -namespace blender::nodes::node_shader_tex_checker_cc { +namespace blender::nodes { static void sh_node_tex_checker_declare(NodeDeclarationBuilder &b) { @@ -36,6 +36,8 @@ static void sh_node_tex_checker_declare(NodeDeclarationBuilder &b) b.add_output<decl::Float>(N_("Fac")); }; +} // namespace blender::nodes + static void node_shader_init_tex_checker(bNodeTree *UNUSED(ntree), bNode *node) { NodeTexChecker *tex = (NodeTexChecker *)MEM_callocN(sizeof(NodeTexChecker), "NodeTexChecker"); @@ -57,6 +59,8 @@ static int node_shader_gpu_tex_checker(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_tex_checker", in, out); } +namespace blender::nodes { + class NodeTexChecker : public fn::MultiFunction { public: NodeTexChecker() @@ -117,21 +121,19 @@ static void sh_node_tex_checker_build_multi_function( builder.set_matching_fn(fn); } -} // namespace blender::nodes::node_shader_tex_checker_cc +} // namespace blender::nodes -void register_node_type_sh_tex_checker() +void register_node_type_sh_tex_checker(void) { - namespace file_ns = blender::nodes::node_shader_tex_checker_cc; - static bNodeType ntype; sh_fn_node_type_base(&ntype, SH_NODE_TEX_CHECKER, "Checker Texture", NODE_CLASS_TEXTURE, 0); - ntype.declare = file_ns::sh_node_tex_checker_declare; - node_type_init(&ntype, file_ns::node_shader_init_tex_checker); + 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); - node_type_gpu(&ntype, file_ns::node_shader_gpu_tex_checker); - ntype.build_multi_function = file_ns::sh_node_tex_checker_build_multi_function; + node_type_gpu(&ntype, node_shader_gpu_tex_checker); + ntype.build_multi_function = blender::nodes::sh_node_tex_checker_build_multi_function; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_coord.cc b/source/blender/nodes/shader/nodes/node_shader_tex_coord.c index 50411f10aed..4ce19bdc45e 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_coord.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_coord.c @@ -17,14 +17,12 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" #include "DNA_customdata_types.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_tex_coord_cc { - static bNodeSocketTemplate sh_node_tex_coord_out[] = { {SOCK_VECTOR, N_("Generated"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, {SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, @@ -44,12 +42,11 @@ static int node_shader_gpu_tex_coord(GPUMaterial *mat, { Object *ob = (Object *)node->id; - GPUNodeLink *inv_obmat = (ob != nullptr) ? GPU_uniform(&ob->imat[0][0]) : - GPU_builtin(GPU_INVERSE_OBJECT_MATRIX); + GPUNodeLink *inv_obmat = (ob != NULL) ? GPU_uniform(&ob->imat[0][0]) : + GPU_builtin(GPU_INVERSE_OBJECT_MATRIX); /* Opti: don't request orco if not needed. */ - const float default_coords[4] = {0.0f, 0.0f, 0.0f, 0.0f}; - GPUNodeLink *orco = (!out[0].hasoutput) ? GPU_constant(default_coords) : + GPUNodeLink *orco = (!out[0].hasoutput) ? GPU_constant((float[4]){0.0f, 0.0f, 0.0f, 0.0f}) : GPU_attribute(mat, CD_ORCO, ""); GPUNodeLink *mtface = GPU_attribute(mat, CD_MTFACE, ""); GPUNodeLink *viewpos = GPU_builtin(GPU_VIEW_POSITION); @@ -78,27 +75,23 @@ static int node_shader_gpu_tex_coord(GPUMaterial *mat, out[i].link, out[i].link, &out[i].link, - nullptr); + NULL); } } return 1; } -} // namespace blender::nodes::node_shader_tex_coord_cc - /* node type definition */ -void register_node_type_sh_tex_coord() +void register_node_type_sh_tex_coord(void) { - namespace file_ns = blender::nodes::node_shader_tex_coord_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_TEX_COORD, "Texture Coordinate", NODE_CLASS_INPUT, 0); - node_type_socket_templates(&ntype, nullptr, file_ns::sh_node_tex_coord_out); - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_tex_coord); + node_type_socket_templates(&ntype, NULL, sh_node_tex_coord_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_coord); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_environment.cc b/source/blender/nodes/shader/nodes/node_shader_tex_environment.c index 936d3a3011a..26a1db1f3a6 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_environment.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_environment.c @@ -17,12 +17,10 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_tex_environment_cc { - static bNodeSocketTemplate sh_node_tex_environment_in[] = { {SOCK_VECTOR, N_("Vector"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, {-1, ""}, @@ -35,8 +33,7 @@ static bNodeSocketTemplate sh_node_tex_environment_out[] = { static void node_shader_init_tex_environment(bNodeTree *UNUSED(ntree), bNode *node) { - NodeTexEnvironment *tex = (NodeTexEnvironment *)MEM_callocN(sizeof(NodeTexEnvironment), - "NodeTexEnvironment"); + NodeTexEnvironment *tex = MEM_callocN(sizeof(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; @@ -52,12 +49,12 @@ static int node_shader_gpu_tex_environment(GPUMaterial *mat, GPUNodeStack *out) { Image *ima = (Image *)node->id; - NodeTexEnvironment *tex = (NodeTexEnvironment *)node->storage; + NodeTexEnvironment *tex = 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 = (NodeTexImage *)node_original->storage; + NodeTexImage *tex_original = 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. */ @@ -135,22 +132,17 @@ 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 register_node_type_sh_tex_environment(void) { - 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, 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_socket_templates(&ntype, sh_node_tex_environment_in, sh_node_tex_environment_out); + node_type_init(&ntype, node_shader_init_tex_environment); node_type_storage( &ntype, "NodeTexEnvironment", node_free_standard_storage, node_copy_standard_storage); - node_type_gpu(&ntype, file_ns::node_shader_gpu_tex_environment); + node_type_gpu(&ntype, node_shader_gpu_tex_environment); node_type_label(&ntype, node_image_label); node_type_size_preset(&ntype, NODE_SIZE_LARGE); diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_gradient.cc b/source/blender/nodes/shader/nodes/node_shader_tex_gradient.cc index c6094409206..33832c42b3c 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_gradient.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_gradient.cc @@ -17,9 +17,9 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" -namespace blender::nodes::node_shader_tex_gradient_cc { +namespace blender::nodes { static void sh_node_tex_gradient_declare(NodeDeclarationBuilder &b) { @@ -29,6 +29,8 @@ static void sh_node_tex_gradient_declare(NodeDeclarationBuilder &b) b.add_output<decl::Float>(N_("Fac")).no_muted_links(); }; +} // namespace blender::nodes + static void node_shader_init_tex_gradient(bNodeTree *UNUSED(ntree), bNode *node) { NodeTexGradient *tex = (NodeTexGradient *)MEM_callocN(sizeof(NodeTexGradient), @@ -54,6 +56,8 @@ static int node_shader_gpu_tex_gradient(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_tex_gradient", in, out, GPU_constant(&gradient_type)); } +namespace blender::nodes { + class GradientFunction : public fn::MultiFunction { private: int gradient_type_; @@ -154,21 +158,19 @@ static void sh_node_gradient_tex_build_multi_function( builder.construct_and_set_matching_fn<GradientFunction>(tex->gradient_type); } -} // namespace blender::nodes::node_shader_tex_gradient_cc +} // namespace blender::nodes -void register_node_type_sh_tex_gradient() +void register_node_type_sh_tex_gradient(void) { - namespace file_ns = blender::nodes::node_shader_tex_gradient_cc; - static bNodeType ntype; sh_fn_node_type_base(&ntype, SH_NODE_TEX_GRADIENT, "Gradient Texture", NODE_CLASS_TEXTURE, 0); - ntype.declare = file_ns::sh_node_tex_gradient_declare; - node_type_init(&ntype, file_ns::node_shader_init_tex_gradient); + ntype.declare = blender::nodes::sh_node_tex_gradient_declare; + node_type_init(&ntype, node_shader_init_tex_gradient); node_type_storage( &ntype, "NodeTexGradient", node_free_standard_storage, node_copy_standard_storage); - node_type_gpu(&ntype, file_ns::node_shader_gpu_tex_gradient); - ntype.build_multi_function = file_ns::sh_node_gradient_tex_build_multi_function; + node_type_gpu(&ntype, node_shader_gpu_tex_gradient); + ntype.build_multi_function = blender::nodes::sh_node_gradient_tex_build_multi_function; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_image.cc b/source/blender/nodes/shader/nodes/node_shader_tex_image.cc index fd20c556d00..f20fc85cbe0 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_image.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_image.cc @@ -17,9 +17,9 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" -namespace blender::nodes::node_shader_tex_image_cc { +namespace blender::nodes { static void sh_node_tex_image_declare(NodeDeclarationBuilder &b) { @@ -29,6 +29,8 @@ static void sh_node_tex_image_declare(NodeDeclarationBuilder &b) b.add_output<decl::Float>(N_("Alpha")).no_muted_links(); }; +}; // namespace blender::nodes + static void node_shader_init_tex_image(bNodeTree *UNUSED(ntree), bNode *node) { NodeTexImage *tex = (NodeTexImage *)MEM_callocN(sizeof(NodeTexImage), "NodeTexImage"); @@ -171,21 +173,17 @@ static int node_shader_gpu_tex_image(GPUMaterial *mat, return true; } -} // namespace blender::nodes::node_shader_tex_image_cc - /* node type definition */ -void register_node_type_sh_tex_image() +void register_node_type_sh_tex_image(void) { - namespace file_ns = blender::nodes::node_shader_tex_image_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_TEX_IMAGE, "Image Texture", NODE_CLASS_TEXTURE, 0); - ntype.declare = file_ns::sh_node_tex_image_declare; - node_type_init(&ntype, file_ns::node_shader_init_tex_image); + 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); - node_type_gpu(&ntype, file_ns::node_shader_gpu_tex_image); + node_type_gpu(&ntype, node_shader_gpu_tex_image); node_type_label(&ntype, node_image_label); node_type_size_preset(&ntype, NODE_SIZE_LARGE); diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_magic.cc b/source/blender/nodes/shader/nodes/node_shader_tex_magic.cc index 9b19dc2907b..62e68d53d03 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_magic.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_magic.cc @@ -17,9 +17,9 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" -namespace blender::nodes::node_shader_tex_magic_cc { +namespace blender::nodes { static void sh_node_tex_magic_declare(NodeDeclarationBuilder &b) { @@ -31,6 +31,8 @@ static void sh_node_tex_magic_declare(NodeDeclarationBuilder &b) b.add_output<decl::Float>(N_("Fac")).no_muted_links(); }; +} // namespace blender::nodes + static void node_shader_init_tex_magic(bNodeTree *UNUSED(ntree), bNode *node) { NodeTexMagic *tex = (NodeTexMagic *)MEM_callocN(sizeof(NodeTexMagic), "NodeTexMagic"); @@ -56,6 +58,8 @@ static int node_shader_gpu_tex_magic(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_tex_magic", in, out, GPU_constant(&depth)); } +namespace blender::nodes { + class MagicFunction : public fn::MultiFunction { private: int depth_; @@ -175,21 +179,19 @@ static void sh_node_magic_tex_build_multi_function( builder.construct_and_set_matching_fn<MagicFunction>(tex->depth); } -} // namespace blender::nodes::node_shader_tex_magic_cc +} // namespace blender::nodes -void register_node_type_sh_tex_magic() +void register_node_type_sh_tex_magic(void) { - namespace file_ns = blender::nodes::node_shader_tex_magic_cc; - static bNodeType ntype; sh_fn_node_type_base(&ntype, SH_NODE_TEX_MAGIC, "Magic Texture", NODE_CLASS_TEXTURE, 0); - ntype.declare = file_ns::sh_node_tex_magic_declare; - node_type_init(&ntype, file_ns::node_shader_init_tex_magic); + 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); - node_type_gpu(&ntype, file_ns::node_shader_gpu_tex_magic); - ntype.build_multi_function = file_ns::sh_node_magic_tex_build_multi_function; + node_type_gpu(&ntype, node_shader_gpu_tex_magic); + ntype.build_multi_function = blender::nodes::sh_node_magic_tex_build_multi_function; nodeRegisterType(&ntype); } 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 70c78f75736..e426d9cc49c 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.cc @@ -17,11 +17,11 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" #include "BLI_noise.hh" -namespace blender::nodes::node_shader_tex_musgrave_cc { +namespace blender::nodes { static void sh_node_tex_musgrave_declare(NodeDeclarationBuilder &b) { @@ -37,6 +37,8 @@ static void sh_node_tex_musgrave_declare(NodeDeclarationBuilder &b) b.add_output<decl::Float>(N_("Fac")).no_muted_links(); }; +} // namespace blender::nodes + static void node_shader_init_tex_musgrave(bNodeTree *UNUSED(ntree), bNode *node) { NodeTexMusgrave *tex = (NodeTexMusgrave *)MEM_callocN(sizeof(NodeTexMusgrave), @@ -126,6 +128,8 @@ static void node_shader_update_tex_musgrave(bNodeTree *ntree, bNode *node) node_sock_label(outFacSock, "Height"); } +namespace blender::nodes { + class MusgraveFunction : public fn::MultiFunction { private: const int dimensions_; @@ -525,23 +529,21 @@ 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_tex_musgrave_cc +} // namespace blender::nodes -void register_node_type_sh_tex_musgrave() +void register_node_type_sh_tex_musgrave(void) { - namespace file_ns = blender::nodes::node_shader_tex_musgrave_cc; - static bNodeType ntype; sh_fn_node_type_base(&ntype, SH_NODE_TEX_MUSGRAVE, "Musgrave Texture", NODE_CLASS_TEXTURE, 0); - ntype.declare = file_ns::sh_node_tex_musgrave_declare; + ntype.declare = blender::nodes::sh_node_tex_musgrave_declare; node_type_size_preset(&ntype, NODE_SIZE_MIDDLE); - node_type_init(&ntype, file_ns::node_shader_init_tex_musgrave); + node_type_init(&ntype, node_shader_init_tex_musgrave); node_type_storage( &ntype, "NodeTexMusgrave", node_free_standard_storage, node_copy_standard_storage); - node_type_gpu(&ntype, file_ns::node_shader_gpu_tex_musgrave); - node_type_update(&ntype, file_ns::node_shader_update_tex_musgrave); - ntype.build_multi_function = file_ns::sh_node_musgrave_build_multi_function; + node_type_gpu(&ntype, node_shader_gpu_tex_musgrave); + node_type_update(&ntype, node_shader_update_tex_musgrave); + ntype.build_multi_function = blender::nodes::sh_node_musgrave_build_multi_function; nodeRegisterType(&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 13537be2249..5f846207673 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_noise.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_noise.cc @@ -17,11 +17,11 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" #include "BLI_noise.hh" -namespace blender::nodes::node_shader_tex_noise_cc { +namespace blender::nodes { static void sh_node_tex_noise_declare(NodeDeclarationBuilder &b) { @@ -40,6 +40,8 @@ static void sh_node_tex_noise_declare(NodeDeclarationBuilder &b) b.add_output<decl::Color>(N_("Color")).no_muted_links(); }; +} // namespace blender::nodes + static void node_shader_init_tex_noise(bNodeTree *UNUSED(ntree), bNode *node) { NodeTexNoise *tex = (NodeTexNoise *)MEM_callocN(sizeof(NodeTexNoise), "NodeTexNoise"); @@ -84,6 +86,8 @@ static void node_shader_update_tex_noise(bNodeTree *ntree, bNode *node) nodeSetSocketAvailability(ntree, sockW, tex->dimensions == 1 || tex->dimensions == 4); } +namespace blender::nodes { + class NoiseFunction : public fn::MultiFunction { private: int dimensions_; @@ -242,23 +246,21 @@ static void sh_node_noise_build_multi_function(blender::nodes::NodeMultiFunction builder.construct_and_set_matching_fn<NoiseFunction>(tex->dimensions); } -} // namespace blender::nodes::node_shader_tex_noise_cc +} // namespace blender::nodes /* node type definition */ -void register_node_type_sh_tex_noise() +void register_node_type_sh_tex_noise(void) { - namespace file_ns = blender::nodes::node_shader_tex_noise_cc; - static bNodeType ntype; sh_fn_node_type_base(&ntype, SH_NODE_TEX_NOISE, "Noise Texture", NODE_CLASS_TEXTURE, 0); - ntype.declare = file_ns::sh_node_tex_noise_declare; - node_type_init(&ntype, file_ns::node_shader_init_tex_noise); + ntype.declare = blender::nodes::sh_node_tex_noise_declare; + node_type_init(&ntype, node_shader_init_tex_noise); node_type_storage( &ntype, "NodeTexNoise", node_free_standard_storage, node_copy_standard_storage); - node_type_gpu(&ntype, file_ns::node_shader_gpu_tex_noise); - node_type_update(&ntype, file_ns::node_shader_update_tex_noise); - ntype.build_multi_function = file_ns::sh_node_noise_build_multi_function; + node_type_gpu(&ntype, node_shader_gpu_tex_noise); + node_type_update(&ntype, node_shader_update_tex_noise); + ntype.build_multi_function = blender::nodes::sh_node_noise_build_multi_function; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_pointdensity.cc b/source/blender/nodes/shader/nodes/node_shader_tex_pointdensity.c index 73812da029c..14cd1fd4c0c 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_pointdensity.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_pointdensity.c @@ -17,14 +17,12 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" #include "RE_texture.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_tex_pointdensity_cc { - static bNodeSocketTemplate sh_node_tex_pointdensity_in[] = { {SOCK_VECTOR, N_("Vector"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, {-1, ""}, @@ -38,8 +36,8 @@ static bNodeSocketTemplate sh_node_tex_pointdensity_out[] = { static void node_shader_init_tex_pointdensity(bNodeTree *UNUSED(ntree), bNode *node) { - NodeShaderTexPointDensity *point_density = (NodeShaderTexPointDensity *)MEM_callocN( - sizeof(NodeShaderTexPointDensity), "new pd node"); + NodeShaderTexPointDensity *point_density = MEM_callocN(sizeof(NodeShaderTexPointDensity), + "new pd node"); point_density->resolution = 100; point_density->radius = 0.3f; point_density->space = SHD_POINTDENSITY_SPACE_OBJECT; @@ -49,7 +47,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 = (NodeShaderTexPointDensity *)node->storage; + NodeShaderTexPointDensity *point_density = node->storage; PointDensity *pd = &point_density->pd; RE_point_density_free(pd); BKE_texture_pointdensity_free_data(pd); @@ -62,28 +60,23 @@ static void node_shader_copy_tex_pointdensity(bNodeTree *UNUSED(dest_ntree), const bNode *src_node) { dest_node->storage = MEM_dupallocN(src_node->storage); - NodeShaderTexPointDensity *point_density = (NodeShaderTexPointDensity *)dest_node->storage; + NodeShaderTexPointDensity *point_density = dest_node->storage; PointDensity *pd = &point_density->pd; memset(pd, 0, sizeof(*pd)); } -} // namespace blender::nodes::node_shader_tex_pointdensity_cc - /* node type definition */ -void register_node_type_sh_tex_pointdensity() +void register_node_type_sh_tex_pointdensity(void) { - namespace file_ns = blender::nodes::node_shader_tex_pointdensity_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_TEX_POINTDENSITY, "Point Density", NODE_CLASS_TEXTURE, 0); - node_type_socket_templates( - &ntype, file_ns::sh_node_tex_pointdensity_in, file_ns::sh_node_tex_pointdensity_out); - node_type_init(&ntype, file_ns::node_shader_init_tex_pointdensity); + node_type_socket_templates(&ntype, sh_node_tex_pointdensity_in, sh_node_tex_pointdensity_out); + node_type_init(&ntype, node_shader_init_tex_pointdensity); node_type_storage(&ntype, "NodeShaderTexPointDensity", - file_ns::node_shader_free_tex_pointdensity, - file_ns::node_shader_copy_tex_pointdensity); + node_shader_free_tex_pointdensity, + node_shader_copy_tex_pointdensity); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_sky.cc b/source/blender/nodes/shader/nodes/node_shader_tex_sky.c index 2ee271b5d24..5c581528c14 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_sky.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_sky.c @@ -17,13 +17,11 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" #include "sky_model.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_tex_sky_cc { - static bNodeSocketTemplate sh_node_tex_sky_in[] = { {SOCK_VECTOR, N_("Vector"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, {-1, ""}, @@ -36,7 +34,7 @@ static bNodeSocketTemplate sh_node_tex_sky_out[] = { static void node_shader_init_tex_sky(bNodeTree *UNUSED(ntree), bNode *node) { - NodeTexSky *tex = (NodeTexSky *)MEM_callocN(sizeof(NodeTexSky), "NodeTexSky"); + NodeTexSky *tex = MEM_callocN(sizeof(NodeTexSky), "NodeTexSky"); BKE_texture_mapping_default(&tex->base.tex_mapping, TEXMAP_TYPE_POINT); BKE_texture_colormapping_default(&tex->base.color_mapping); tex->sun_direction[0] = 0.0f; @@ -57,10 +55,10 @@ static void node_shader_init_tex_sky(bNodeTree *UNUSED(ntree), bNode *node) node->storage = tex; } -struct SkyModelPreetham { +typedef struct SkyModelPreetham { float config_Y[5], config_x[5], config_y[5]; /* named after xyY color space */ float radiance[3]; -}; +} SkyModelPreetham; static float sky_perez_function(const float *lam, float theta, float gamma) { @@ -205,23 +203,19 @@ static void node_shader_update_sky(bNodeTree *ntree, bNode *node) nodeSetSocketAvailability(ntree, sockVector, !(tex->sky_model == 2 && tex->sun_disc == 1)); } -} // namespace blender::nodes::node_shader_tex_sky_cc - /* node type definition */ -void register_node_type_sh_tex_sky() +void register_node_type_sh_tex_sky(void) { - namespace file_ns = blender::nodes::node_shader_tex_sky_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_TEX_SKY, "Sky Texture", NODE_CLASS_TEXTURE, 0); - node_type_socket_templates(&ntype, file_ns::sh_node_tex_sky_in, file_ns::sh_node_tex_sky_out); + node_type_socket_templates(&ntype, sh_node_tex_sky_in, sh_node_tex_sky_out); node_type_size_preset(&ntype, NODE_SIZE_MIDDLE); - node_type_init(&ntype, file_ns::node_shader_init_tex_sky); + node_type_init(&ntype, node_shader_init_tex_sky); node_type_storage(&ntype, "NodeTexSky", node_free_standard_storage, node_copy_standard_storage); - node_type_gpu(&ntype, file_ns::node_shader_gpu_tex_sky); + node_type_gpu(&ntype, node_shader_gpu_tex_sky); /* remove Vector input for Nishita */ - node_type_update(&ntype, file_ns::node_shader_update_sky); + node_type_update(&ntype, node_shader_update_sky); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.cc b/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.cc index a1e54749b71..5d2654f61c8 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.cc @@ -17,11 +17,11 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" #include "BLI_noise.hh" -namespace blender::nodes::node_shader_tex_voronoi_cc { +namespace blender::nodes { static void sh_node_tex_voronoi_declare(NodeDeclarationBuilder &b) { @@ -47,6 +47,8 @@ static void sh_node_tex_voronoi_declare(NodeDeclarationBuilder &b) b.add_output<decl::Float>(N_("Radius")).no_muted_links(); }; +} // namespace blender::nodes + static void node_shader_init_tex_voronoi(bNodeTree *UNUSED(ntree), bNode *node) { NodeTexVoronoi *tex = (NodeTexVoronoi *)MEM_callocN(sizeof(NodeTexVoronoi), "NodeTexVoronoi"); @@ -163,6 +165,8 @@ static void node_shader_update_tex_voronoi(bNodeTree *ntree, bNode *node) nodeSetSocketAvailability(ntree, outRadiusSock, tex->feature == SHD_VORONOI_N_SPHERE_RADIUS); } +namespace blender::nodes { + static MultiFunction::ExecutionHints voronoi_execution_hints{50, false}; class VoronoiMinowskiFunction : public fn::MultiFunction { @@ -1317,22 +1321,20 @@ static void sh_node_voronoi_build_multi_function(blender::nodes::NodeMultiFuncti } } -} // namespace blender::nodes::node_shader_tex_voronoi_cc +} // namespace blender::nodes -void register_node_type_sh_tex_voronoi() +void register_node_type_sh_tex_voronoi(void) { - namespace file_ns = blender::nodes::node_shader_tex_voronoi_cc; - static bNodeType ntype; sh_fn_node_type_base(&ntype, SH_NODE_TEX_VORONOI, "Voronoi Texture", NODE_CLASS_TEXTURE, 0); - ntype.declare = file_ns::sh_node_tex_voronoi_declare; - node_type_init(&ntype, file_ns::node_shader_init_tex_voronoi); + ntype.declare = blender::nodes::sh_node_tex_voronoi_declare; + node_type_init(&ntype, node_shader_init_tex_voronoi); node_type_storage( &ntype, "NodeTexVoronoi", node_free_standard_storage, node_copy_standard_storage); - node_type_gpu(&ntype, file_ns::node_shader_gpu_tex_voronoi); - node_type_update(&ntype, file_ns::node_shader_update_tex_voronoi); - ntype.build_multi_function = file_ns::sh_node_voronoi_build_multi_function; + node_type_gpu(&ntype, node_shader_gpu_tex_voronoi); + node_type_update(&ntype, node_shader_update_tex_voronoi); + ntype.build_multi_function = blender::nodes::sh_node_voronoi_build_multi_function; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_wave.cc b/source/blender/nodes/shader/nodes/node_shader_tex_wave.cc index bcb3091c1ce..fe534c605e9 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_wave.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_wave.cc @@ -17,11 +17,11 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" #include "BLI_noise.hh" -namespace blender::nodes::node_shader_tex_wave_cc { +namespace blender::nodes { static void sh_node_tex_wave_declare(NodeDeclarationBuilder &b) { @@ -41,6 +41,8 @@ static void sh_node_tex_wave_declare(NodeDeclarationBuilder &b) b.add_output<decl::Float>(N_("Fac")).no_muted_links(); }; +} // namespace blender::nodes + static void node_shader_init_tex_wave(bNodeTree *UNUSED(ntree), bNode *node) { NodeTexWave *tex = (NodeTexWave *)MEM_callocN(sizeof(NodeTexWave), "NodeTexWave"); @@ -79,6 +81,8 @@ static int node_shader_gpu_tex_wave(GPUMaterial *mat, GPU_constant(&wave_profile)); } +namespace blender::nodes { + class WaveFunction : public fn::MultiFunction { private: int wave_type_; @@ -212,21 +216,19 @@ static void sh_node_wave_tex_build_multi_function( tex->wave_type, tex->bands_direction, tex->rings_direction, tex->wave_profile); } -} // namespace blender::nodes::node_shader_tex_wave_cc +} // namespace blender::nodes -void register_node_type_sh_tex_wave() +void register_node_type_sh_tex_wave(void) { - namespace file_ns = blender::nodes::node_shader_tex_wave_cc; - static bNodeType ntype; sh_fn_node_type_base(&ntype, SH_NODE_TEX_WAVE, "Wave Texture", NODE_CLASS_TEXTURE, 0); - ntype.declare = file_ns::sh_node_tex_wave_declare; + ntype.declare = blender::nodes::sh_node_tex_wave_declare; node_type_size_preset(&ntype, NODE_SIZE_MIDDLE); - node_type_init(&ntype, file_ns::node_shader_init_tex_wave); + node_type_init(&ntype, node_shader_init_tex_wave); node_type_storage(&ntype, "NodeTexWave", node_free_standard_storage, node_copy_standard_storage); - node_type_gpu(&ntype, file_ns::node_shader_gpu_tex_wave); - ntype.build_multi_function = file_ns::sh_node_wave_tex_build_multi_function; + node_type_gpu(&ntype, node_shader_gpu_tex_wave); + ntype.build_multi_function = blender::nodes::sh_node_wave_tex_build_multi_function; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_white_noise.cc b/source/blender/nodes/shader/nodes/node_shader_tex_white_noise.cc index 5ea82991c25..7b4ff7fec5c 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_white_noise.cc +++ b/source/blender/nodes/shader/nodes/node_shader_tex_white_noise.cc @@ -17,11 +17,11 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" #include "BLI_noise.hh" -namespace blender::nodes::node_shader_tex_white_noise_cc { +namespace blender::nodes { static void sh_node_tex_white_noise_declare(NodeDeclarationBuilder &b) { @@ -32,6 +32,8 @@ static void sh_node_tex_white_noise_declare(NodeDeclarationBuilder &b) b.add_output<decl::Color>(N_("Color")); }; +} // namespace blender::nodes + static void node_shader_init_tex_white_noise(bNodeTree *UNUSED(ntree), bNode *node) { node->custom1 = 3; @@ -65,6 +67,8 @@ static void node_shader_update_tex_white_noise(bNodeTree *ntree, bNode *node) nodeSetSocketAvailability(ntree, sockW, node->custom1 == 1 || node->custom1 == 4); } +namespace blender::nodes { + class WhiteNoiseFunction : public fn::MultiFunction { private: int dimensions_; @@ -185,21 +189,19 @@ static void sh_node_noise_build_multi_function(blender::nodes::NodeMultiFunction builder.construct_and_set_matching_fn<WhiteNoiseFunction>((int)node.custom1); } -} // namespace blender::nodes::node_shader_tex_white_noise_cc +} // namespace blender::nodes -void register_node_type_sh_tex_white_noise() +void register_node_type_sh_tex_white_noise(void) { - namespace file_ns = blender::nodes::node_shader_tex_white_noise_cc; - static bNodeType ntype; sh_fn_node_type_base( &ntype, SH_NODE_TEX_WHITE_NOISE, "White Noise Texture", NODE_CLASS_TEXTURE, 0); - ntype.declare = file_ns::sh_node_tex_white_noise_declare; - node_type_init(&ntype, file_ns::node_shader_init_tex_white_noise); - node_type_gpu(&ntype, file_ns::gpu_shader_tex_white_noise); - node_type_update(&ntype, file_ns::node_shader_update_tex_white_noise); - ntype.build_multi_function = file_ns::sh_node_noise_build_multi_function; + ntype.declare = blender::nodes::sh_node_tex_white_noise_declare; + node_type_init(&ntype, node_shader_init_tex_white_noise); + node_type_gpu(&ntype, gpu_shader_tex_white_noise); + node_type_update(&ntype, node_shader_update_tex_white_noise); + ntype.build_multi_function = blender::nodes::sh_node_noise_build_multi_function; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_uv_along_stroke.cc b/source/blender/nodes/shader/nodes/node_shader_uvAlongStroke.c index 8cb60199581..05c3248af65 100644 --- a/source/blender/nodes/shader/nodes/node_shader_uv_along_stroke.cc +++ b/source/blender/nodes/shader/nodes/node_shader_uvAlongStroke.c @@ -17,29 +17,23 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_uv_along_stroke_cc { - static bNodeSocketTemplate sh_node_uvalongstroke_out[] = { {SOCK_VECTOR, N_("UV"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, {-1, ""}, }; -} // namespace blender::nodes::node_shader_uv_along_stroke_cc - /* node type definition */ -void register_node_type_sh_uvalongstroke() +void register_node_type_sh_uvalongstroke(void) { - namespace file_ns = blender::nodes::node_shader_uv_along_stroke_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_UVALONGSTROKE, "UV Along Stroke", NODE_CLASS_INPUT, 0); - node_type_socket_templates(&ntype, nullptr, file_ns::sh_node_uvalongstroke_out); - node_type_init(&ntype, nullptr); + node_type_socket_templates(&ntype, NULL, sh_node_uvalongstroke_out); + node_type_init(&ntype, NULL); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_uvmap.cc b/source/blender/nodes/shader/nodes/node_shader_uvmap.c index 12feb9c7d09..775b8ffbc06 100644 --- a/source/blender/nodes/shader/nodes/node_shader_uvmap.cc +++ b/source/blender/nodes/shader/nodes/node_shader_uvmap.c @@ -17,14 +17,12 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" #include "DNA_customdata_types.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_uvmap_cc { - static bNodeSocketTemplate sh_node_uvmap_out[] = { {SOCK_VECTOR, N_("UV"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, {-1, ""}, @@ -32,8 +30,7 @@ static bNodeSocketTemplate sh_node_uvmap_out[] = { static void node_shader_init_uvmap(bNodeTree *UNUSED(ntree), bNode *node) { - NodeShaderUVMap *attr = (NodeShaderUVMap *)MEM_callocN(sizeof(NodeShaderUVMap), - "NodeShaderUVMap"); + NodeShaderUVMap *attr = MEM_callocN(sizeof(NodeShaderUVMap), "NodeShaderUVMap"); node->storage = attr; } @@ -43,7 +40,7 @@ static int node_shader_gpu_uvmap(GPUMaterial *mat, GPUNodeStack *in, GPUNodeStack *out) { - NodeShaderUVMap *attr = (NodeShaderUVMap *)node->storage; + NodeShaderUVMap *attr = node->storage; GPUNodeLink *mtface = GPU_attribute(mat, CD_MTFACE, attr->uv_map); GPU_stack_link(mat, node, "node_uvmap", in, out, mtface); @@ -53,22 +50,18 @@ static int node_shader_gpu_uvmap(GPUMaterial *mat, return 1; } -} // namespace blender::nodes::node_shader_uvmap_cc - /* node type definition */ -void register_node_type_sh_uvmap() +void register_node_type_sh_uvmap(void) { - namespace file_ns = blender::nodes::node_shader_uvmap_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_UVMAP, "UV Map", NODE_CLASS_INPUT, 0); - node_type_socket_templates(&ntype, nullptr, file_ns::sh_node_uvmap_out); + node_type_socket_templates(&ntype, NULL, sh_node_uvmap_out); node_type_size_preset(&ntype, NODE_SIZE_MIDDLE); - node_type_init(&ntype, file_ns::node_shader_init_uvmap); + node_type_init(&ntype, node_shader_init_uvmap); node_type_storage( &ntype, "NodeShaderUVMap", node_free_standard_storage, node_copy_standard_storage); - node_type_gpu(&ntype, file_ns::node_shader_gpu_uvmap); + node_type_gpu(&ntype, node_shader_gpu_uvmap); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_color_ramp.cc b/source/blender/nodes/shader/nodes/node_shader_valToRgb.cc index 2bb3f2e08cf..e4f1b2c76f0 100644 --- a/source/blender/nodes/shader/nodes/node_shader_color_ramp.cc +++ b/source/blender/nodes/shader/nodes/node_shader_valToRgb.cc @@ -13,7 +13,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - * The Original Code is Copyright (C) 2021 Blender Foundation. + * The Original Code is Copyright (C) 2005 Blender Foundation. * All rights reserved. */ @@ -21,15 +21,17 @@ * \ingroup shdnodes */ +#include "IMB_colormanagement.h" + #include "DNA_texture_types.h" #include "BLI_color.hh" -#include "node_shader_util.hh" +#include "node_shader_util.h" -namespace blender::nodes::node_shader_color_ramp_cc { +namespace blender::nodes { -static void sh_node_color_ramp_declare(NodeDeclarationBuilder &b) +static void sh_node_valtorgb_declare(NodeDeclarationBuilder &b) { b.is_function_node(); b.add_input<decl::Float>(N_("Fac")).default_value(0.5f).min(0.0f).max(1.0f).subtype(PROP_FACTOR); @@ -37,12 +39,14 @@ static void sh_node_color_ramp_declare(NodeDeclarationBuilder &b) b.add_output<decl::Float>(N_("Alpha")); }; -static void node_shader_exec_color_ramp(void *UNUSED(data), - int UNUSED(thread), - bNode *node, - bNodeExecData *UNUSED(execdata), - bNodeStack **in, - bNodeStack **out) +} // namespace blender::nodes + +static void node_shader_exec_valtorgb(void *UNUSED(data), + int UNUSED(thread), + bNode *node, + bNodeExecData *UNUSED(execdata), + bNodeStack **in, + bNodeStack **out) { /* stack order in: fac */ /* stack order out: col, alpha */ @@ -56,16 +60,16 @@ static void node_shader_exec_color_ramp(void *UNUSED(data), } } -static void node_shader_init_color_ramp(bNodeTree *UNUSED(ntree), bNode *node) +static void node_shader_init_valtorgb(bNodeTree *UNUSED(ntree), bNode *node) { node->storage = BKE_colorband_add(true); } -static int gpu_shader_color_ramp(GPUMaterial *mat, - bNode *node, - bNodeExecData *UNUSED(execdata), - GPUNodeStack *in, - GPUNodeStack *out) +static int gpu_shader_valtorgb(GPUMaterial *mat, + bNode *node, + bNodeExecData *UNUSED(execdata), + GPUNodeStack *in, + GPUNodeStack *out) { struct ColorBand *coba = (ColorBand *)node->storage; float *array, layer; @@ -160,7 +164,7 @@ class ColorBandFunction : public blender::fn::MultiFunction { } }; -static void sh_node_color_ramp_build_multi_function( +static void sh_node_valtorgb_build_multi_function( blender::nodes::NodeMultiFunctionBuilder &builder) { bNode &bnode = builder.node(); @@ -168,22 +172,64 @@ static void sh_node_color_ramp_build_multi_function( builder.construct_and_set_matching_fn<ColorBandFunction>(*color_band); } -} // namespace blender::nodes::node_shader_color_ramp_cc - -void register_node_type_sh_color_ramp() +void register_node_type_sh_valtorgb(void) { - namespace file_ns = blender::nodes::node_shader_color_ramp_cc; - static bNodeType ntype; sh_fn_node_type_base(&ntype, SH_NODE_VALTORGB, "ColorRamp", NODE_CLASS_CONVERTER, 0); - ntype.declare = file_ns::sh_node_color_ramp_declare; - node_type_init(&ntype, file_ns::node_shader_init_color_ramp); + ntype.declare = blender::nodes::sh_node_valtorgb_declare; + node_type_init(&ntype, node_shader_init_valtorgb); node_type_size_preset(&ntype, NODE_SIZE_LARGE); node_type_storage(&ntype, "ColorBand", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, nullptr, nullptr, file_ns::node_shader_exec_color_ramp); - node_type_gpu(&ntype, file_ns::gpu_shader_color_ramp); - ntype.build_multi_function = file_ns::sh_node_color_ramp_build_multi_function; + node_type_exec(&ntype, nullptr, nullptr, node_shader_exec_valtorgb); + node_type_gpu(&ntype, gpu_shader_valtorgb); + ntype.build_multi_function = sh_node_valtorgb_build_multi_function; + + nodeRegisterType(&ntype); +} + +namespace blender::nodes { + +static void sh_node_rgbtobw_declare(NodeDeclarationBuilder &b) +{ + b.add_input<decl::Color>(N_("Color")).default_value({0.5f, 0.5f, 0.5f, 1.0f}); + b.add_output<decl::Float>(N_("Val")); +}; + +} // namespace blender::nodes + +static void node_shader_exec_rgbtobw(void *UNUSED(data), + int UNUSED(thread), + bNode *UNUSED(node), + bNodeExecData *UNUSED(execdata), + bNodeStack **in, + bNodeStack **out) +{ + /* Stack order out: BW. */ + /* Stack order in: COL. */ + float col[3]; + nodestack_get_vec(col, SOCK_VECTOR, in[0]); + + out[0]->vec[0] = IMB_colormanagement_get_luminance(col); +} + +static int gpu_shader_rgbtobw(GPUMaterial *mat, + bNode *node, + bNodeExecData *UNUSED(execdata), + GPUNodeStack *in, + GPUNodeStack *out) +{ + return GPU_stack_link(mat, node, "rgbtobw", in, out); +} + +void register_node_type_sh_rgbtobw(void) +{ + static bNodeType ntype; + + sh_node_type_base(&ntype, SH_NODE_RGBTOBW, "RGB to BW", NODE_CLASS_CONVERTER, 0); + ntype.declare = blender::nodes::sh_node_rgbtobw_declare; + node_type_exec(&ntype, nullptr, nullptr, node_shader_exec_rgbtobw); + node_type_gpu(&ntype, gpu_shader_rgbtobw); nodeRegisterType(&ntype); -}
\ No newline at end of file +} diff --git a/source/blender/nodes/shader/nodes/node_shader_value.cc b/source/blender/nodes/shader/nodes/node_shader_value.cc index 9ff523f42f7..b0f152d8526 100644 --- a/source/blender/nodes/shader/nodes/node_shader_value.cc +++ b/source/blender/nodes/shader/nodes/node_shader_value.cc @@ -21,15 +21,17 @@ * \ingroup shdnodes */ -#include "node_shader_util.hh" +#include "node_shader_util.h" -namespace blender::nodes::node_shader_value_cc { +namespace blender::nodes { static void sh_node_value_declare(NodeDeclarationBuilder &b) { b.add_output<decl::Float>(N_("Value")); }; +} // namespace blender::nodes + static int gpu_shader_value(GPUMaterial *mat, bNode *node, bNodeExecData *UNUSED(execdata), @@ -47,18 +49,14 @@ static void sh_node_value_build_multi_function(blender::nodes::NodeMultiFunction builder.construct_and_set_matching_fn<blender::fn::CustomMF_Constant<float>>(value->value); } -} // namespace blender::nodes::node_shader_value_cc - -void register_node_type_sh_value() +void register_node_type_sh_value(void) { - namespace file_ns = blender::nodes::node_shader_value_cc; - static bNodeType ntype; sh_fn_node_type_base(&ntype, SH_NODE_VALUE, "Value", NODE_CLASS_INPUT, 0); - ntype.declare = file_ns::sh_node_value_declare; - node_type_gpu(&ntype, file_ns::gpu_shader_value); - ntype.build_multi_function = file_ns::sh_node_value_build_multi_function; + ntype.declare = blender::nodes::sh_node_value_declare; + node_type_gpu(&ntype, gpu_shader_value); + ntype.build_multi_function = sh_node_value_build_multi_function; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_vector_transform.cc b/source/blender/nodes/shader/nodes/node_shader_vectTransform.c index d354b579c36..7b08178f874 100644 --- a/source/blender/nodes/shader/nodes/node_shader_vector_transform.cc +++ b/source/blender/nodes/shader/nodes/node_shader_vectTransform.c @@ -21,12 +21,9 @@ * \ingroup shdnodes */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** Vector Transform ******************** */ - -namespace blender::nodes::node_shader_vector_transform_cc { - static bNodeSocketTemplate sh_node_vect_transform_in[] = { {SOCK_VECTOR, N_("Vector"), 0.5f, 0.5f, 0.5f, 1.0f, -10000.0f, 10000.0f, PROP_NONE}, {-1, ""}}; @@ -37,8 +34,8 @@ static bNodeSocketTemplate sh_node_vect_transform_out[] = { static void node_shader_init_vect_transform(bNodeTree *UNUSED(ntree), bNode *node) { - NodeShaderVectTransform *vect = (NodeShaderVectTransform *)MEM_callocN( - sizeof(NodeShaderVectTransform), "NodeShaderVectTransform"); + NodeShaderVectTransform *vect = MEM_callocN(sizeof(NodeShaderVectTransform), + "NodeShaderVectTransform"); /* Convert World into Object Space per default */ vect->convert_to = 1; @@ -61,7 +58,7 @@ static GPUNodeLink *get_gpulink_matrix_from_to(short from, short to) case SHD_VECT_TRANSFORM_SPACE_OBJECT: switch (to) { case SHD_VECT_TRANSFORM_SPACE_OBJECT: - return nullptr; + return NULL; case SHD_VECT_TRANSFORM_SPACE_WORLD: return GPU_builtin(GPU_OBJECT_MATRIX); case SHD_VECT_TRANSFORM_SPACE_CAMERA: @@ -71,7 +68,7 @@ static GPUNodeLink *get_gpulink_matrix_from_to(short from, short to) case SHD_VECT_TRANSFORM_SPACE_WORLD: switch (to) { case SHD_VECT_TRANSFORM_SPACE_WORLD: - return nullptr; + return NULL; case SHD_VECT_TRANSFORM_SPACE_CAMERA: return GPU_builtin(GPU_VIEW_MATRIX); case SHD_VECT_TRANSFORM_SPACE_OBJECT: @@ -81,7 +78,7 @@ static GPUNodeLink *get_gpulink_matrix_from_to(short from, short to) case SHD_VECT_TRANSFORM_SPACE_CAMERA: switch (to) { case SHD_VECT_TRANSFORM_SPACE_CAMERA: - return nullptr; + return NULL; case SHD_VECT_TRANSFORM_SPACE_WORLD: return GPU_builtin(GPU_INVERSE_VIEW_MATRIX); case SHD_VECT_TRANSFORM_SPACE_OBJECT: @@ -89,7 +86,7 @@ static GPUNodeLink *get_gpulink_matrix_from_to(short from, short to) } break; } - return nullptr; + return NULL; } static int gpu_shader_vect_transform(GPUMaterial *mat, bNode *node, @@ -102,7 +99,7 @@ static int gpu_shader_vect_transform(GPUMaterial *mat, const char *vtransform = "direction_transform_m4v3"; const char *ptransform = "point_transform_m4v3"; - const char *func_name = nullptr; + const char *func_name = 0; NodeShaderVectTransform *nodeprop = (NodeShaderVectTransform *)node->storage; @@ -140,22 +137,17 @@ static int gpu_shader_vect_transform(GPUMaterial *mat, return true; } -} // namespace blender::nodes::node_shader_vector_transform_cc - -void register_node_type_sh_vect_transform() +void register_node_type_sh_vect_transform(void) { - namespace file_ns = blender::nodes::node_shader_vector_transform_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_VECT_TRANSFORM, "Vector Transform", NODE_CLASS_OP_VECTOR, 0); - node_type_init(&ntype, file_ns::node_shader_init_vect_transform); - node_type_socket_templates( - &ntype, file_ns::sh_node_vect_transform_in, file_ns::sh_node_vect_transform_out); + node_type_init(&ntype, node_shader_init_vect_transform); + node_type_socket_templates(&ntype, sh_node_vect_transform_in, sh_node_vect_transform_out); node_type_storage( &ntype, "NodeShaderVectTransform", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, nullptr, nullptr, file_ns::node_shader_exec_vect_transform); - node_type_gpu(&ntype, file_ns::gpu_shader_vect_transform); + node_type_exec(&ntype, NULL, NULL, node_shader_exec_vect_transform); + node_type_gpu(&ntype, gpu_shader_vect_transform); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_vector_displacement.cc b/source/blender/nodes/shader/nodes/node_shader_vector_displacement.c index 9683f889134..0e82f346529 100644 --- a/source/blender/nodes/shader/nodes/node_shader_vector_displacement.cc +++ b/source/blender/nodes/shader/nodes/node_shader_vector_displacement.c @@ -17,12 +17,10 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_vector_displacement_cc { - static bNodeSocketTemplate sh_node_vector_displacement_in[] = { {SOCK_RGBA, N_("Vector"), 0.00f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f, PROP_NONE, SOCK_HIDE_VALUE}, {SOCK_FLOAT, N_("Midlevel"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, @@ -65,22 +63,18 @@ static int gpu_shader_vector_displacement(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_vector_displacement_world", in, out); } -} // namespace blender::nodes::node_shader_vector_displacement_cc - /* node type definition */ -void register_node_type_sh_vector_displacement() +void register_node_type_sh_vector_displacement(void) { - namespace file_ns = blender::nodes::node_shader_vector_displacement_cc; - static bNodeType ntype; sh_node_type_base( &ntype, SH_NODE_VECTOR_DISPLACEMENT, "Vector Displacement", NODE_CLASS_OP_VECTOR, 0); node_type_socket_templates( - &ntype, file_ns::sh_node_vector_displacement_in, file_ns::sh_node_vector_displacement_out); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_init(&ntype, file_ns::node_shader_init_vector_displacement); - node_type_gpu(&ntype, file_ns::gpu_shader_vector_displacement); + &ntype, sh_node_vector_displacement_in, sh_node_vector_displacement_out); + node_type_storage(&ntype, "", NULL, NULL); + node_type_init(&ntype, node_shader_init_vector_displacement); + node_type_gpu(&ntype, gpu_shader_vector_displacement); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_vector_math.cc b/source/blender/nodes/shader/nodes/node_shader_vector_math.cc index 3a5cbad70dc..9b1b2467230 100644 --- a/source/blender/nodes/shader/nodes/node_shader_vector_math.cc +++ b/source/blender/nodes/shader/nodes/node_shader_vector_math.cc @@ -21,11 +21,11 @@ * \ingroup shdnodes */ -#include "node_shader_util.hh" +#include "node_shader_util.h" #include "NOD_math_functions.hh" -namespace blender::nodes::node_vector_math_shader_cc { +namespace blender::nodes { static void sh_node_vector_math_declare(NodeDeclarationBuilder &b) { @@ -38,6 +38,8 @@ static void sh_node_vector_math_declare(NodeDeclarationBuilder &b) b.add_output<decl::Float>(N_("Value")); }; +} // namespace blender::nodes + static const char *gpu_shader_get_name(int mode) { switch (mode) { @@ -277,20 +279,16 @@ static void sh_node_vector_math_build_multi_function( builder.set_matching_fn(fn); } -} // namespace blender::nodes::node_vector_math_shader_cc - -void register_node_type_sh_vect_math() +void register_node_type_sh_vect_math(void) { - namespace file_ns = blender::nodes::node_vector_math_shader_cc; - static bNodeType ntype; sh_fn_node_type_base(&ntype, SH_NODE_VECTOR_MATH, "Vector Math", NODE_CLASS_OP_VECTOR, 0); - ntype.declare = file_ns::sh_node_vector_math_declare; + ntype.declare = blender::nodes::sh_node_vector_math_declare; node_type_label(&ntype, node_vector_math_label); - node_type_gpu(&ntype, file_ns::gpu_shader_vector_math); - node_type_update(&ntype, file_ns::node_shader_update_vector_math); - ntype.build_multi_function = file_ns::sh_node_vector_math_build_multi_function; + node_type_gpu(&ntype, gpu_shader_vector_math); + node_type_update(&ntype, node_shader_update_vector_math); + ntype.build_multi_function = sh_node_vector_math_build_multi_function; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_vector_rotate.cc b/source/blender/nodes/shader/nodes/node_shader_vector_rotate.cc index 108d6d6bc4f..3c1f1ed8d39 100644 --- a/source/blender/nodes/shader/nodes/node_shader_vector_rotate.cc +++ b/source/blender/nodes/shader/nodes/node_shader_vector_rotate.cc @@ -21,9 +21,9 @@ * \ingroup shdnodes */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" -namespace blender::nodes::node_shader_vector_rotate_cc { +namespace blender::nodes { static void sh_node_vector_rotate_declare(NodeDeclarationBuilder &b) { @@ -36,6 +36,8 @@ static void sh_node_vector_rotate_declare(NodeDeclarationBuilder &b) b.add_output<decl::Vector>(N_("Vector")); }; +} // namespace blender::nodes + static const char *gpu_shader_get_name(int mode) { switch (mode) { @@ -203,19 +205,15 @@ static void node_shader_update_vector_rotate(bNodeTree *ntree, bNode *node) ntree, sock_angle, !ELEM(node->custom1, NODE_VECTOR_ROTATE_TYPE_EULER_XYZ)); } -} // namespace blender::nodes::node_shader_vector_rotate_cc - -void register_node_type_sh_vector_rotate() +void register_node_type_sh_vector_rotate(void) { - namespace file_ns = blender::nodes::node_shader_vector_rotate_cc; - static bNodeType ntype; sh_fn_node_type_base(&ntype, SH_NODE_VECTOR_ROTATE, "Vector Rotate", NODE_CLASS_OP_VECTOR, 0); - ntype.declare = file_ns::sh_node_vector_rotate_declare; - node_type_gpu(&ntype, file_ns::gpu_shader_vector_rotate); - node_type_update(&ntype, file_ns::node_shader_update_vector_rotate); - ntype.build_multi_function = file_ns::sh_node_vector_rotate_build_multi_function; + ntype.declare = blender::nodes::sh_node_vector_rotate_declare; + node_type_gpu(&ntype, gpu_shader_vector_rotate); + node_type_update(&ntype, node_shader_update_vector_rotate); + ntype.build_multi_function = sh_node_vector_rotate_build_multi_function; nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_vertex_color.cc b/source/blender/nodes/shader/nodes/node_shader_vertex_color.c index 739030d89c7..40576b68dd5 100644 --- a/source/blender/nodes/shader/nodes/node_shader_vertex_color.cc +++ b/source/blender/nodes/shader/nodes/node_shader_vertex_color.c @@ -17,9 +17,7 @@ * All rights reserved. */ -#include "node_shader_util.hh" - -namespace blender::nodes::node_shader_vertex_color_cc { +#include "../node_shader_util.h" static bNodeSocketTemplate sh_node_vertex_color_out[] = { {SOCK_RGBA, N_("Color")}, @@ -29,8 +27,8 @@ static bNodeSocketTemplate sh_node_vertex_color_out[] = { static void node_shader_init_vertex_color(bNodeTree *UNUSED(ntree), bNode *node) { - NodeShaderVertexColor *vertexColor = (NodeShaderVertexColor *)MEM_callocN( - sizeof(NodeShaderVertexColor), "NodeShaderVertexColor"); + NodeShaderVertexColor *vertexColor = MEM_callocN(sizeof(NodeShaderVertexColor), + "NodeShaderVertexColor"); node->storage = vertexColor; } @@ -49,20 +47,16 @@ static int node_shader_gpu_vertex_color(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_vertex_color", in, out, vertexColorLink); } -} // namespace blender::nodes::node_shader_vertex_color_cc - -void register_node_type_sh_vertex_color() +void register_node_type_sh_vertex_color(void) { - namespace file_ns = blender::nodes::node_shader_vertex_color_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_VERTEX_COLOR, "Vertex Color", NODE_CLASS_INPUT, 0); - node_type_socket_templates(&ntype, nullptr, file_ns::sh_node_vertex_color_out); - node_type_init(&ntype, file_ns::node_shader_init_vertex_color); + node_type_socket_templates(&ntype, NULL, sh_node_vertex_color_out); + node_type_init(&ntype, node_shader_init_vertex_color); node_type_storage( &ntype, "NodeShaderVertexColor", node_free_standard_storage, node_copy_standard_storage); - node_type_gpu(&ntype, file_ns::node_shader_gpu_vertex_color); + node_type_gpu(&ntype, node_shader_gpu_vertex_color); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_volume_absorption.cc b/source/blender/nodes/shader/nodes/node_shader_volume_absorption.c index 550530b4bc0..abf2e63e6d5 100644 --- a/source/blender/nodes/shader/nodes/node_shader_volume_absorption.cc +++ b/source/blender/nodes/shader/nodes/node_shader_volume_absorption.c @@ -17,18 +17,20 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_volume_absorption_cc { +static bNodeSocketTemplate sh_node_volume_absorption_in[] = { + {SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + {SOCK_FLOAT, N_("Density"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + {-1, ""}, +}; -static void node_declare(NodeDeclarationBuilder &b) -{ - b.add_input<decl::Color>(N_("Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f}); - b.add_input<decl::Float>(N_("Density")).default_value(1.0f).min(0.0f).max(1000.0f); - b.add_output<decl::Shader>(N_("Volume")); -} +static bNodeSocketTemplate sh_node_volume_absorption_out[] = { + {SOCK_SHADER, N_("Volume")}, + {-1, ""}, +}; static int node_shader_gpu_volume_absorption(GPUMaterial *mat, bNode *node, @@ -39,20 +41,16 @@ static int node_shader_gpu_volume_absorption(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_volume_absorption", in, out); } -} // namespace blender::nodes::node_shader_volume_absorption_cc - /* node type definition */ -void register_node_type_sh_volume_absorption() +void register_node_type_sh_volume_absorption(void) { - namespace file_ns = blender::nodes::node_shader_volume_absorption_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_VOLUME_ABSORPTION, "Volume Absorption", NODE_CLASS_SHADER, 0); - ntype.declare = file_ns::node_declare; - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_volume_absorption); + node_type_socket_templates(&ntype, sh_node_volume_absorption_in, sh_node_volume_absorption_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_volume_absorption); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_volume_info.cc b/source/blender/nodes/shader/nodes/node_shader_volume_info.c index dc556809fe6..6cafc991e13 100644 --- a/source/blender/nodes/shader/nodes/node_shader_volume_info.cc +++ b/source/blender/nodes/shader/nodes/node_shader_volume_info.c @@ -17,9 +17,7 @@ * All rights reserved. */ -#include "node_shader_util.hh" - -namespace blender::nodes::node_shader_volume_info_cc { +#include "../node_shader_util.h" static bNodeSocketTemplate sh_node_volume_info_out[] = { {SOCK_RGBA, N_("Color")}, @@ -51,17 +49,13 @@ static int node_shader_gpu_volume_info(GPUMaterial *mat, return true; } -} // namespace blender::nodes::node_shader_volume_info_cc - -void register_node_type_sh_volume_info() +void register_node_type_sh_volume_info(void) { - namespace file_ns = blender::nodes::node_shader_volume_info_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_VOLUME_INFO, "Volume Info", NODE_CLASS_INPUT, 0); - node_type_socket_templates(&ntype, nullptr, file_ns::sh_node_volume_info_out); - node_type_gpu(&ntype, file_ns::node_shader_gpu_volume_info); + node_type_socket_templates(&ntype, NULL, sh_node_volume_info_out); + node_type_gpu(&ntype, node_shader_gpu_volume_info); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_volume_principled.cc b/source/blender/nodes/shader/nodes/node_shader_volume_principled.c index bdba452ccb2..1a25aec5cb8 100644 --- a/source/blender/nodes/shader/nodes/node_shader_volume_principled.cc +++ b/source/blender/nodes/shader/nodes/node_shader_volume_principled.c @@ -17,28 +17,30 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_volume_principled_cc { - -static void node_declare(NodeDeclarationBuilder &b) -{ - b.add_input<decl::Color>(N_("Color")).default_value({0.5f, 0.5f, 0.5f, 1.0f}); - b.add_input<decl::String>(N_("Color Attribute")); - b.add_input<decl::Float>(N_("Density")).default_value(1.0f).min(0.0f).max(1000.0f); - b.add_input<decl::String>(N_("Density Attribute")); - b.add_input<decl::Float>(N_("Anisotropy")).min(-1.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Color>(N_("Absorption Color")); - b.add_input<decl::Float>(N_("Emission Strength")).min(0.0f).max(1000.0f); - b.add_input<decl::Color>(N_("Emission Color")).default_value({1.0f, 1.0f, 1.0f, 1.0f}); - b.add_input<decl::Float>(N_("Blackbody Intensity")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_input<decl::Color>(N_("Blackbody Tint")).default_value({1.0f, 1.0f, 1.0f, 1.0f}); - b.add_input<decl::Float>(N_("Temperature")).default_value(1000.0f).min(0.0f).max(6500.0f); - b.add_input<decl::String>(N_("Temperature Attribute")); - b.add_output<decl::Shader>(N_("Volume")); -} +static bNodeSocketTemplate sh_node_volume_principled_in[] = { + {SOCK_RGBA, N_("Color"), 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f}, + {SOCK_STRING, N_("Color Attribute"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + {SOCK_FLOAT, N_("Density"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + {SOCK_STRING, N_("Density Attribute"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + {SOCK_FLOAT, N_("Anisotropy"), 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, PROP_FACTOR}, + {SOCK_RGBA, N_("Absorption Color"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, + {SOCK_FLOAT, N_("Emission Strength"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1000.0f}, + {SOCK_RGBA, N_("Emission Color"), 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f}, + {SOCK_FLOAT, N_("Blackbody Intensity"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, + {SOCK_RGBA, N_("Blackbody Tint"), 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f}, + {SOCK_FLOAT, N_("Temperature"), 1000.0f, 0.0f, 0.0f, 0.0f, 0.0f, 6500.0f}, + {SOCK_STRING, N_("Temperature Attribute"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + {-1, ""}, +}; + +static bNodeSocketTemplate sh_node_volume_principled_out[] = { + {SOCK_SHADER, N_("Volume")}, + {-1, ""}, +}; static void node_shader_init_volume_principled(bNodeTree *UNUSED(ntree), bNode *node) { @@ -62,14 +64,14 @@ static int node_shader_gpu_volume_principled(GPUMaterial *mat, bool use_blackbody = (in[8].link || in[8].vec[0] != 0.0f); /* Get volume attributes. */ - GPUNodeLink *density = nullptr, *color = nullptr, *temperature = nullptr; + GPUNodeLink *density = NULL, *color = NULL, *temperature = NULL; LISTBASE_FOREACH (bNodeSocket *, sock, &node->inputs) { if (sock->typeinfo->type != SOCK_STRING) { continue; } - bNodeSocketValueString *value = (bNodeSocketValueString *)sock->default_value; + bNodeSocketValueString *value = sock->default_value; const char *attribute_name = value->value; if (attribute_name[0] == '\0') { continue; @@ -104,11 +106,11 @@ static int node_shader_gpu_volume_principled(GPUMaterial *mat, const int size = CM_TABLE + 1; float *data, layer; if (use_blackbody) { - data = (float *)MEM_mallocN(sizeof(float) * size * 4, "blackbody texture"); + data = MEM_mallocN(sizeof(float) * size * 4, "blackbody texture"); blackbody_temperature_to_rgb_table(data, size, 965.0f, 12000.0f); } else { - data = (float *)MEM_callocN(sizeof(float) * size * 4, "blackbody black"); + data = MEM_callocN(sizeof(float) * size * 4, "blackbody black"); } GPUNodeLink *spectrummap = GPU_color_band(mat, size, data, &layer); @@ -124,21 +126,17 @@ static int node_shader_gpu_volume_principled(GPUMaterial *mat, GPU_constant(&layer)); } -} // namespace blender::nodes::node_shader_volume_principled_cc - /* node type definition */ -void register_node_type_sh_volume_principled() +void register_node_type_sh_volume_principled(void) { - namespace file_ns = blender::nodes::node_shader_volume_principled_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_VOLUME_PRINCIPLED, "Principled Volume", NODE_CLASS_SHADER, 0); - ntype.declare = file_ns::node_declare; + node_type_socket_templates(&ntype, sh_node_volume_principled_in, sh_node_volume_principled_out); node_type_size_preset(&ntype, NODE_SIZE_LARGE); - node_type_init(&ntype, file_ns::node_shader_init_volume_principled); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_volume_principled); + node_type_init(&ntype, node_shader_init_volume_principled); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_volume_principled); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_volume_scatter.cc b/source/blender/nodes/shader/nodes/node_shader_volume_scatter.c index 736707ab55d..f4cfe7729ca 100644 --- a/source/blender/nodes/shader/nodes/node_shader_volume_scatter.cc +++ b/source/blender/nodes/shader/nodes/node_shader_volume_scatter.c @@ -17,19 +17,21 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** OUTPUT ******************** */ -namespace blender::nodes::node_shader_volume_scatter_cc { +static bNodeSocketTemplate sh_node_volume_scatter_in[] = { + {SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + {SOCK_FLOAT, N_("Density"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + {SOCK_FLOAT, N_("Anisotropy"), 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, PROP_FACTOR}, + {-1, ""}, +}; -static void node_declare(NodeDeclarationBuilder &b) -{ - b.add_input<decl::Color>(N_("Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f}); - b.add_input<decl::Float>(N_("Density")).default_value(1.0f).min(0.0f).max(1000.0f); - b.add_input<decl::Float>(N_("Anisotropy")).min(-1.0f).max(1.0f).subtype(PROP_FACTOR); - b.add_output<decl::Shader>(N_("Volume")); -} +static bNodeSocketTemplate sh_node_volume_scatter_out[] = { + {SOCK_SHADER, N_("Volume")}, + {-1, ""}, +}; static int node_shader_gpu_volume_scatter(GPUMaterial *mat, bNode *node, @@ -40,20 +42,16 @@ static int node_shader_gpu_volume_scatter(GPUMaterial *mat, return GPU_stack_link(mat, node, "node_volume_scatter", in, out); } -} // namespace blender::nodes::node_shader_volume_scatter_cc - /* node type definition */ -void register_node_type_sh_volume_scatter() +void register_node_type_sh_volume_scatter(void) { - namespace file_ns = blender::nodes::node_shader_volume_scatter_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_VOLUME_SCATTER, "Volume Scatter", NODE_CLASS_SHADER, 0); - ntype.declare = file_ns::node_declare; - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_volume_scatter); + node_type_socket_templates(&ntype, sh_node_volume_scatter_in, sh_node_volume_scatter_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_volume_scatter); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_wavelength.cc b/source/blender/nodes/shader/nodes/node_shader_wavelength.c index 8798b1c8e06..f978537ee85 100644 --- a/source/blender/nodes/shader/nodes/node_shader_wavelength.cc +++ b/source/blender/nodes/shader/nodes/node_shader_wavelength.c @@ -17,12 +17,9 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** Wavelength ******************** */ - -namespace blender::nodes::node_shader_wavelength_cc { - static bNodeSocketTemplate sh_node_wavelength_in[] = { {SOCK_FLOAT, N_("Wavelength"), 500.0f, 0.0f, 0.0f, 0.0f, 380.0f, 780.0f}, {-1, ""}, @@ -40,7 +37,7 @@ static int node_shader_gpu_wavelength(GPUMaterial *mat, GPUNodeStack *out) { const int size = CM_TABLE + 1; - float *data = (float *)MEM_mallocN(sizeof(float) * size * 4, "cie_xyz texture"); + float *data = MEM_mallocN(sizeof(float) * size * 4, "cie_xyz texture"); wavelength_to_xyz_table(data, size); @@ -60,22 +57,17 @@ static int node_shader_gpu_wavelength(GPUMaterial *mat, GPU_uniform(xyz_to_rgb.b)); } -} // namespace blender::nodes::node_shader_wavelength_cc - /* node type definition */ -void register_node_type_sh_wavelength() +void register_node_type_sh_wavelength(void) { - namespace file_ns = blender::nodes::node_shader_wavelength_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_WAVELENGTH, "Wavelength", NODE_CLASS_CONVERTER, 0); node_type_size_preset(&ntype, NODE_SIZE_MIDDLE); - node_type_socket_templates( - &ntype, file_ns::sh_node_wavelength_in, file_ns::sh_node_wavelength_out); - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_wavelength); + node_type_socket_templates(&ntype, sh_node_wavelength_in, sh_node_wavelength_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_wavelength); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_wireframe.cc b/source/blender/nodes/shader/nodes/node_shader_wireframe.c index bd4d3adfde9..37e60ddb205 100644 --- a/source/blender/nodes/shader/nodes/node_shader_wireframe.cc +++ b/source/blender/nodes/shader/nodes/node_shader_wireframe.c @@ -17,12 +17,9 @@ * All rights reserved. */ -#include "node_shader_util.hh" +#include "../node_shader_util.h" /* **************** Wireframe ******************** */ - -namespace blender::nodes::node_shader_wireframe_cc { - static bNodeSocketTemplate sh_node_wireframe_in[] = { {SOCK_FLOAT, N_("Size"), 0.01f, 0.0f, 0.0f, 0.0f, 0.0f, 100.0f}, {-1, ""}, @@ -55,21 +52,16 @@ static int node_shader_gpu_wireframe(GPUMaterial *mat, GPU_builtin(GPU_BARYCENTRIC_DIST)); } -} // namespace blender::nodes::node_shader_wireframe_cc - /* node type definition */ -void register_node_type_sh_wireframe() +void register_node_type_sh_wireframe(void) { - namespace file_ns = blender::nodes::node_shader_wireframe_cc; - static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_WIREFRAME, "Wireframe", NODE_CLASS_INPUT, 0); - node_type_socket_templates( - &ntype, file_ns::sh_node_wireframe_in, file_ns::sh_node_wireframe_out); - node_type_init(&ntype, nullptr); - node_type_storage(&ntype, "", nullptr, nullptr); - node_type_gpu(&ntype, file_ns::node_shader_gpu_wireframe); + node_type_socket_templates(&ntype, sh_node_wireframe_in, sh_node_wireframe_out); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_gpu(&ntype, node_shader_gpu_wireframe); nodeRegisterType(&ntype); } diff --git a/source/blender/nodes/texture/nodes/node_texture_bricks.c b/source/blender/nodes/texture/nodes/node_texture_bricks.c index 72690d6ccfe..966d05b4a16 100644 --- a/source/blender/nodes/texture/nodes/node_texture_bricks.c +++ b/source/blender/nodes/texture/nodes/node_texture_bricks.c @@ -21,6 +21,7 @@ * \ingroup texnodes */ + #include "NOD_texture.h" #include "node_texture_util.h" diff --git a/source/blender/render/RE_texture.h b/source/blender/render/RE_texture.h index 6b499c9d230..39d773777ab 100644 --- a/source/blender/render/RE_texture.h +++ b/source/blender/render/RE_texture.h @@ -22,8 +22,6 @@ #pragma once -#include "BLI_compiler_attrs.h" - /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* this include is for non-render pipeline exports (still old cruft here) */ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ |