[Bf-blender-cvs] [9b8f2042b0d] soc-2020-io-performance: Add created material to the object.

Ankit Meel noreply at git.blender.org
Wed Aug 5 19:39:13 CEST 2020


Commit: 9b8f2042b0d12442662e2a04c8eca934d4a967a0
Author: Ankit Meel
Date:   Wed Aug 5 23:09:08 2020 +0530
Branches: soc-2020-io-performance
https://developer.blender.org/rB9b8f2042b0d12442662e2a04c8eca934d4a967a0

Add created material to the object.

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

M	source/blender/io/wavefront_obj/intern/wavefront_obj_im_mesh.cc
M	source/blender/io/wavefront_obj/intern/wavefront_obj_im_mtl.cc

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

diff --git a/source/blender/io/wavefront_obj/intern/wavefront_obj_im_mesh.cc b/source/blender/io/wavefront_obj/intern/wavefront_obj_im_mesh.cc
index ff21082bb8b..ad2dfe09ad7 100644
--- a/source/blender/io/wavefront_obj/intern/wavefront_obj_im_mesh.cc
+++ b/source/blender/io/wavefront_obj/intern/wavefront_obj_im_mesh.cc
@@ -197,6 +197,9 @@ void OBJMeshFromRaw::create_materials(Main *bmain, const Map<std::string, MTLMat
     mat->use_nodes = true;
     ShaderNodetreeWrap mat_wrap{bmain, curr_mat.value};
     mat->nodetree = mat_wrap.get_nodetree();
+    BKE_object_material_slot_add(bmain, mesh_object_.get());
+    BKE_object_material_assign(
+        bmain, mesh_object_.get(), mat, mesh_object_.get()->totcol, BKE_MAT_ASSIGN_USERPREF);
   }
 }
 }  // namespace blender::io::obj
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 912a40ba7c0..16fd0475272 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
@@ -108,6 +108,8 @@ static void set_img_filepath(Main *bmain, std::string_view value, bNode *r_node)
     }
   }
   BLI_assert(tex_image);
+  /* This doesn't look like a way to add image to node. */
+  r_node->id = reinterpret_cast<ID *>(tex_image);
 }
 
 /**
@@ -160,6 +162,7 @@ bNode *ShaderNodetreeWrap::add_node_to_tree(const int node_type)
 
 /**
  * Link two nodes by the sockets of given IDs.
+ * Also releases the ownership of the "from" node for nodetree to free it.
  */
 void ShaderNodetreeWrap::link_sockets(unique_node_ptr from_node,
                                       StringRef from_node_id,
@@ -170,6 +173,7 @@ void ShaderNodetreeWrap::link_sockets(unique_node_ptr from_node,
   bNodeSocket *to_sock{nodeFindSocket(to_node, SOCK_IN, to_node_id.data())};
   BLI_assert(from_sock && to_sock);
   nodeAddLink(nodetree_.get(), from_node.get(), from_sock, to_node, to_sock);
+  /* TODO ankitm add node positioning. */
   static_cast<void>(from_node.release());
 }



More information about the Bf-blender-cvs mailing list