[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