[Bf-blender-cvs] [8e58bd0996d] soc-2020-io-performance: MTL: release shader_output_ node instead of bsdf_.

Ankit Meel noreply at git.blender.org
Tue Aug 4 13:05:57 CEST 2020


Commit: 8e58bd0996d10f1178d784cf16cb3dd8e5572ea1
Author: Ankit Meel
Date:   Tue Aug 4 16:35:53 2020 +0530
Branches: soc-2020-io-performance
https://developer.blender.org/rB8e58bd0996d10f1178d784cf16cb3dd8e5572ea1

MTL: release shader_output_ node instead of bsdf_.

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

M	source/blender/io/wavefront_obj/intern/wavefront_obj_im_mtl.cc
M	source/blender/io/wavefront_obj/intern/wavefront_obj_im_mtl.hh
M	source/blender/io/wavefront_obj/intern/wavefront_obj_im_objects.hh

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

diff --git a/source/blender/io/wavefront_obj/intern/wavefront_obj_im_mtl.cc b/source/blender/io/wavefront_obj/intern/wavefront_obj_im_mtl.cc
index 4ecb0e9ff6f..32375f99913 100644
--- a/source/blender/io/wavefront_obj/intern/wavefront_obj_im_mtl.cc
+++ b/source/blender/io/wavefront_obj/intern/wavefront_obj_im_mtl.cc
@@ -32,35 +32,6 @@
 
 namespace blender::io::obj {
 
-/**
- * Initialises a nodetree with a p-BSDF node's BSDF socket connected to shader output node's
- * surface socket.
- */
-ShaderNodetreeWrap::ShaderNodetreeWrap(const MTLMaterial &mtl_mat)
-{
-  nodetree_.reset(ntreeAddTree(nullptr, "Shader Nodetree", "ShaderNodetree"));
-  bsdf_.reset(add_node_to_tree(SH_NODE_BSDF_DIFFUSE));
-  unique_node_ptr shader_output{add_node_to_tree(SH_NODE_OUTPUT_MATERIAL)};
-
-  set_bsdf_socket_values(mtl_mat);
-  add_image_textures(mtl_mat);
-  link_sockets(std::move(bsdf_), "BSDF", shader_output.get(), "Surface");
-
-  nodeSetActive(nodetree_.get(), shader_output.get());
-}
-
-ShaderNodetreeWrap::~ShaderNodetreeWrap()
-{
-  /* If the destructor has been reached, we know that nodes and the nodetree
-   * have been added to the scene. */
-  bsdf_.release();
-}
-
-bNodeTree *ShaderNodetreeWrap::get_nodetree()
-{
-  return nodetree_.release();
-}
-
 /**
  * Set the socket's (of given ID) value to the given number(s).
  * Only float value(s) can be set using this method.
@@ -106,6 +77,35 @@ static void set_img_filepath(StringRef value, bNode *r_node)
   BLI_strncpy_utf8(tex_image->filepath, value.data(), 1024);
 }
 
+/**
+ * Initialises a nodetree with a p-BSDF node's BSDF socket connected to shader output node's
+ * surface socket.
+ */
+ShaderNodetreeWrap::ShaderNodetreeWrap(const MTLMaterial &mtl_mat)
+{
+  nodetree_.reset(ntreeAddTree(nullptr, "Shader Nodetree", "ShaderNodetree"));
+  bsdf_.reset(add_node_to_tree(SH_NODE_BSDF_DIFFUSE));
+  shader_output_.reset(add_node_to_tree(SH_NODE_OUTPUT_MATERIAL));
+
+  set_bsdf_socket_values(mtl_mat);
+  add_image_textures(mtl_mat);
+  link_sockets(std::move(bsdf_), "BSDF", shader_output_.get(), "Surface");
+
+  nodeSetActive(nodetree_.get(), shader_output_.get());
+}
+
+ShaderNodetreeWrap::~ShaderNodetreeWrap()
+{
+  /* If the destructor has been reached, we know that nodes and the nodetree
+   * have been added to the scene. */
+  shader_output_.release();
+}
+
+bNodeTree *ShaderNodetreeWrap::get_nodetree()
+{
+  return nodetree_.release();
+}
+
 /**
  * Add a new static node to the tree.
  * No two nodes are linked here.
diff --git a/source/blender/io/wavefront_obj/intern/wavefront_obj_im_mtl.hh b/source/blender/io/wavefront_obj/intern/wavefront_obj_im_mtl.hh
index bdea98838b8..38faf77b3a7 100644
--- a/source/blender/io/wavefront_obj/intern/wavefront_obj_im_mtl.hh
+++ b/source/blender/io/wavefront_obj/intern/wavefront_obj_im_mtl.hh
@@ -57,6 +57,7 @@ class ShaderNodetreeWrap {
  private:
   unique_nodetree_ptr nodetree_;
   unique_node_ptr bsdf_;
+  unique_node_ptr shader_output_;
 
  public:
   ShaderNodetreeWrap(const MTLMaterial &mtl_mat);
diff --git a/source/blender/io/wavefront_obj/intern/wavefront_obj_im_objects.hh b/source/blender/io/wavefront_obj/intern/wavefront_obj_im_objects.hh
index fe1de49e4ee..e27c540625e 100644
--- a/source/blender/io/wavefront_obj/intern/wavefront_obj_im_objects.hh
+++ b/source/blender/io/wavefront_obj/intern/wavefront_obj_im_objects.hh
@@ -150,7 +150,6 @@ enum eTextureMapType {
  * Used for storing parameters for all kinds of texture maps from MTL file.
  */
 struct tex_map_XX {
-  // TODO ankitm add map type enum.
   float3 translation = {0.0f, 0.0f, 0.0f};
   float3 scale = {1.0f, 1.0f, 1.0f};
   std::string image_path{};



More information about the Bf-blender-cvs mailing list