[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