[Bf-blender-cvs] [c82d167d814] master: Cycles: fix missing ShaderNode ownership in render_graph_finalize_test

Kévin Dietrich noreply at git.blender.org
Tue Oct 13 15:39:17 CEST 2020


Commit: c82d167d814fee9dbf462c891282e1e35916e8c8
Author: Kévin Dietrich
Date:   Tue Oct 13 15:36:52 2020 +0200
Branches: master
https://developer.blender.org/rBc82d167d814fee9dbf462c891282e1e35916e8c8

Cycles: fix missing ShaderNode ownership in render_graph_finalize_test

===================================================================

M	intern/cycles/test/render_graph_finalize_test.cpp

===================================================================

diff --git a/intern/cycles/test/render_graph_finalize_test.cpp b/intern/cycles/test/render_graph_finalize_test.cpp
index f0d5804aee9..4639fc6d0dd 100644
--- a/intern/cycles/test/render_graph_finalize_test.cpp
+++ b/intern/cycles/test/render_graph_finalize_test.cpp
@@ -40,9 +40,9 @@ namespace {
 
 template<typename T> class ShaderNodeBuilder {
  public:
-  ShaderNodeBuilder(const string &name) : name_(name)
+  ShaderNodeBuilder(ShaderGraph &graph, const string &name) : name_(name)
   {
-    node_ = new T();
+    node_ = graph.create_node<T>();
     node_->name = name;
   }
 
@@ -121,8 +121,8 @@ class ShaderGraphBuilder {
   /* Common input/output boilerplate. */
   ShaderGraphBuilder &add_attribute(const string &name)
   {
-    return (*this).add_node(
-        ShaderNodeBuilder<AttributeNode>(name).set(&AttributeNode::attribute, ustring(name)));
+    return (*this).add_node(ShaderNodeBuilder<AttributeNode>(*graph_, name)
+                                .set(&AttributeNode::attribute, ustring(name)));
   }
 
   ShaderGraphBuilder &output_closure(const string &from)
@@ -133,7 +133,7 @@ class ShaderGraphBuilder {
   ShaderGraphBuilder &output_color(const string &from)
   {
     return (*this)
-        .add_node(ShaderNodeBuilder<EmissionNode>("EmissionNode"))
+        .add_node(ShaderNodeBuilder<EmissionNode>(*graph_, "EmissionNode"))
         .add_connection(from, "EmissionNode::Color")
         .output_closure("EmissionNode::Emission");
   }
@@ -141,11 +141,16 @@ class ShaderGraphBuilder {
   ShaderGraphBuilder &output_value(const string &from)
   {
     return (*this)
-        .add_node(ShaderNodeBuilder<EmissionNode>("EmissionNode"))
+        .add_node(ShaderNodeBuilder<EmissionNode>(*graph_, "EmissionNode"))
         .add_connection(from, "EmissionNode::Strength")
         .output_closure("EmissionNode::Emission");
   }
 
+  ShaderGraph &graph()
+  {
+    return *graph_;
+  }
+
  protected:
   ShaderGraph *graph_;
   map<string, ShaderNode *> node_map_;
@@ -203,14 +208,15 @@ TEST_F(RenderGraph, deduplicate_deep)
   CORRECT_INFO_MESSAGE(log, "Folding Value2::Value to constant (0.8).");
   CORRECT_INFO_MESSAGE(log, "Deduplicated 2 nodes.");
 
-  builder.add_node(ShaderNodeBuilder<GeometryNode>("Geometry1"))
-      .add_node(ShaderNodeBuilder<GeometryNode>("Geometry2"))
-      .add_node(ShaderNodeBuilder<ValueNode>("Value1").set(&ValueNode::value, 0.8f))
-      .add_node(ShaderNodeBuilder<ValueNode>("Value2").set(&ValueNode::value, 0.8f))
-      .add_node(ShaderNodeBuilder<NoiseTextureNode>("Noise1"))
-      .add_node(ShaderNodeBuilder<NoiseTextureNode>("Noise2"))
-      .add_node(
-          ShaderNodeBuilder<MixNode>("Mix").set(&MixNode::type, NODE_MIX_BLEND).set("Fac", 0.5f))
+  builder.add_node(ShaderNodeBuilder<GeometryNode>(graph, "Geometry1"))
+      .add_node(ShaderNodeBuilder<GeometryNode>(graph, "Geometry2"))
+      .add_node(ShaderNodeBuilder<ValueNode>(graph, "Value1").set(&ValueNode::value, 0.8f))
+      .add_node(ShaderNodeBuilder<ValueNode>(graph, "Value2").set(&ValueNode::value, 0.8f))
+      .add_node(ShaderNodeBuilder<NoiseTextureNode>(graph, "Noise1"))
+      .add_node(ShaderNodeBuilder<NoiseTextureNode>(graph, "Noise2"))
+      .add_node(ShaderNodeBuilder<MixNode>(graph, "Mix")
+                    .set(&MixNode::type, NODE_MIX_BLEND)
+                    .set("Fac", 0.5f))
       .add_connection("Geometry1::Parametric", "Noise1::Vector")
       .add_connection("Value1::Value", "Noise1::Scale")
       .add_connection("Noise1::Color", "Mix::Color1")
@@ -235,7 +241,7 @@ TEST_F(RenderGraph, constant_fold_rgb_to_bw)
                        "Folding convert_float_to_color::value_color to constant (0.8, 0.8, 0.8).");
 
   builder
-      .add_node(ShaderNodeBuilder<RGBToBWNode>("RGBToBWNodeNode")
+      .add_node(ShaderNodeBuilder<RGBToBWNode>(graph, "RGBToBWNodeNode")
                     .set("Color", make_float3(0.8f, 0.8f, 0.8f)))
       .output_color("RGBToBWNodeNode::Val");
 
@@ -252,8 +258,8 @@ TEST_F(RenderGraph, constant_fold_emission1)
   CORRECT_INFO_MESSAGE(log, "Discarding closure Emission.");
 
   builder
-      .add_node(
-          ShaderNodeBuilder<EmissionNode>("Emission").set("Color", make_float3(0.0f, 0.0f, 0.0f)))
+      .add_node(ShaderNodeBuilder<EmissionNode>(graph, "Emission")
+                    .set("Color", make_float3(0.0f, 0.0f, 0.0f)))
       .output_closure("Emission::Emission");
 
   graph.finalize(scene);
@@ -264,7 +270,7 @@ TEST_F(RenderGraph, constant_fold_emission2)
   EXPECT_ANY_MESSAGE(log);
   CORRECT_INFO_MESSAGE(log, "Discarding closure Emission.");
 
-  builder.add_node(ShaderNodeBuilder<EmissionNode>("Emission").set("Strength", 0.0f))
+  builder.add_node(ShaderNodeBuilder<EmissionNode>(graph, "Emission").set("Strength", 0.0f))
       .output_closure("Emission::Emission");
 
   graph.finalize(scene);
@@ -280,7 +286,7 @@ TEST_F(RenderGraph, constant_fold_background1)
   CORRECT_INFO_MESSAGE(log, "Discarding closure Background.");
 
   builder
-      .add_node(ShaderNodeBuilder<BackgroundNode>("Background")
+      .add_node(ShaderNodeBuilder<BackgroundNode>(graph, "Background")
                     .set("Color", make_float3(0.0f, 0.0f, 0.0f)))
       .output_closure("Background::Background");
 
@@ -292,7 +298,7 @@ TEST_F(RenderGraph, constant_fold_background2)
   EXPECT_ANY_MESSAGE(log);
   CORRECT_INFO_MESSAGE(log, "Discarding closure Background.");
 
-  builder.add_node(ShaderNodeBuilder<BackgroundNode>("Background").set("Strength", 0.0f))
+  builder.add_node(ShaderNodeBuilder<BackgroundNode>(graph, "Background").set("Strength", 0.0f))
       .output_closure("Background::Background");
 
   graph.finalize(scene);
@@ -309,10 +315,10 @@ TEST_F(RenderGraph, constant_fold_shader_add)
   CORRECT_INFO_MESSAGE(log, "Folding AddClosure2::Closure to socket Diffuse::BSDF.");
   INVALID_INFO_MESSAGE(log, "Folding AddClosure3");
 
-  builder.add_node(ShaderNodeBuilder<DiffuseBsdfNode>("Diffuse"))
-      .add_node(ShaderNodeBuilder<AddClosureNode>("AddClosure1"))
-      .add_node(ShaderNodeBuilder<AddClosureNode>("AddClosure2"))
-      .add_node(ShaderNodeBuilder<AddClosureNode>("AddClosure3"))
+  builder.add_node(ShaderNodeBuilder<DiffuseBsdfNode>(graph, "Diffuse"))
+      .add_node(ShaderNodeBuilder<AddClosureNode>(graph, "AddClosure1"))
+      .add_node(ShaderNodeBuilder<AddClosureNode>(graph, "AddClosure2"))
+      .add_node(ShaderNodeBuilder<AddClosureNode>(graph, "AddClosure3"))
       .add_connection("Diffuse::BSDF", "AddClosure1::Closure1")
       .add_connection("Diffuse::BSDF", "AddClosure2::Closure2")
       .add_connection("AddClosure1::Closure", "AddClosure3::Closure1")
@@ -335,15 +341,15 @@ TEST_F(RenderGraph, constant_fold_shader_mix)
   CORRECT_INFO_MESSAGE(log, "Folding MixClosure3::Closure to socket Diffuse::BSDF.");
 
   builder.add_attribute("Attribute")
-      .add_node(ShaderNodeBuilder<DiffuseBsdfNode>("Diffuse"))
+      .add_node(ShaderNodeBuilder<DiffuseBsdfNode>(graph, "Diffuse"))
       /* choose left */
-      .add_node(ShaderNodeBuilder<MixClosureNode>("MixClosure1").set("Fac", 0.0f))
+      .add_node(ShaderNodeBuilder<MixClosureNode>(graph, "MixClosure1").set("Fac", 0.0f))
       .add_connection("Diffuse::BSDF", "MixClosure1::Closure1")
       /* choose right */
-      .add_node(ShaderNodeBuilder<MixClosureNode>("MixClosure2").set("Fac", 1.0f))
+      .add_node(ShaderNodeBuilder<MixClosureNode>(graph, "MixClosure2").set("Fac", 1.0f))
       .add_connection("Diffuse::BSDF", "MixClosure2::Closure2")
       /* both inputs folded the same */
-      .add_node(ShaderNodeBuilder<MixClosureNode>("MixClosure3"))
+      .add_node(ShaderNodeBuilder<MixClosureNode>(graph, "MixClosure3"))
       .add_connection("Attribute::Fac", "MixClosure3::Fac")
       .add_connection("MixClosure1::Closure", "MixClosure3::Closure1")
       .add_connection("MixClosure2::Closure", "MixClosure3::Closure2")
@@ -362,7 +368,7 @@ TEST_F(RenderGraph, constant_fold_invert)
   CORRECT_INFO_MESSAGE(log, "Folding Invert::Color to constant (0.68, 0.5, 0.32).");
 
   builder
-      .add_node(ShaderNodeBuilder<InvertNode>("Invert")
+      .add_node(ShaderNodeBuilder<InvertNode>(graph, "Invert")
                     .set("Fac", 0.8f)
                     .set("Color", make_float3(0.2f, 0.5f, 0.8f)))
       .output_color("Invert::Color");
@@ -380,7 +386,7 @@ TEST_F(RenderGraph, constant_fold_invert_fac_0)
   CORRECT_INFO_MESSAGE(log, "Folding Invert::Color to socket Attribute::Color.");
 
   builder.add_attribute("Attribute")
-      .add_node(ShaderNodeBuilder<InvertNode>("Invert").set("Fac", 0.0f))
+      .add_node(ShaderNodeBuilder<InvertNode>(graph, "Invert").set("Fac", 0.0f))
       .add_connection("Attribute::Color", "Invert::Color")
       .output_color("Invert::Color");
 
@@ -397,7 +403,7 @@ TEST_F(RenderGraph, constant_fold_invert_fac_0_const)
   CORRECT_INFO_MESSAGE(log, "Folding Invert::Color to constant (0.2, 0.5, 0.8).");
 
   builder
-      .add_node(ShaderNodeBuilder<InvertNode>("Invert")
+      .add_node(ShaderNodeBuilder<InvertNode>(graph, "Invert")
                     .set("Fac", 0.0f)
                     .set("Color", make_float3(0.2f, 0.5f, 0.8f)))
       .output_color("Invert::Color");
@@ -415,7 +421,7 @@ TEST_F(RenderGraph, constant_fold_mix_add)
   CORRECT_INFO_MESSAGE(log, "Folding MixAdd::Color to constant (0.62, 1.14, 1.42).");
 
   builder
-      .add_node(ShaderNodeBuilder<MixNode>("MixAdd")
+      .add_node(ShaderNodeBuilder<MixNode>(graph, "MixAdd")
                     .set(&MixNode::type, NODE_MIX_ADD)
                     .set(&MixNode::use_clamp, false)
                     .set("Fac", 0.8f)
@@ -436,7 +442,7 @@ TEST_F(RenderGraph, constant_fold_mix_add_clamp)
   CORRECT_INFO_MESSAGE(log, "Folding MixAdd::Color to constant (0.62, 1, 1).");
 
   builder
-      .add_node(ShaderNodeBuilder<MixNode>("MixAdd")
+      .add_node(ShaderNodeBuilder<MixNode>(graph, "MixAdd")
                     .set(&MixNode::type, NODE_MIX_ADD)
                     .set(&MixNode::use_clamp, true)
                     .set("Fac", 0.8f)
@@ -458,7 +464,7 @@ TEST_F(RenderGraph, constant_fold_part_mix_dodge_no_fac_0)
 
   builder.add_attribute("Attribute1")
       .add_attribute("Attribute2")
-      .add_node(Sh

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list