[Bf-blender-cvs] [1d19c96a1f5] soc-2020-io-performance: Remove depsgraph member variable; use const variables.
Ankit Meel
noreply at git.blender.org
Wed Sep 16 13:05:54 CEST 2020
Commit: 1d19c96a1f57fafeaabbf2e30f06ceb648a92b71
Author: Ankit Meel
Date: Wed Sep 16 14:29:19 2020 +0530
Branches: soc-2020-io-performance
https://developer.blender.org/rB1d19c96a1f57fafeaabbf2e30f06ceb648a92b71
Remove depsgraph member variable; use const variables.
===================================================================
M source/blender/io/wavefront_obj/intern/obj_export_file_writer.cc
M source/blender/io/wavefront_obj/intern/obj_export_mesh.cc
M source/blender/io/wavefront_obj/intern/obj_export_mesh.hh
===================================================================
diff --git a/source/blender/io/wavefront_obj/intern/obj_export_file_writer.cc b/source/blender/io/wavefront_obj/intern/obj_export_file_writer.cc
index d42ce309679..e02096046b4 100644
--- a/source/blender/io/wavefront_obj/intern/obj_export_file_writer.cc
+++ b/source/blender/io/wavefront_obj/intern/obj_export_file_writer.cc
@@ -158,7 +158,8 @@ void OBJWriter::write_object_name(const OBJMesh &obj_mesh_data) const
*/
void OBJWriter::write_vertex_coords(const OBJMesh &obj_mesh_data) const
{
- for (uint i = 0; i < obj_mesh_data.tot_vertices(); i++) {
+ const int tot_vertices = obj_mesh_data.tot_vertices();
+ for (uint i = 0; i < tot_vertices; i++) {
float3 vertex = obj_mesh_data.calc_vertex_coords(i, export_params_.scaling_factor);
fprintf(outfile_, "v %f %f %f\n", vertex[0], vertex[1], vertex[2]);
}
@@ -186,7 +187,8 @@ void OBJWriter::write_poly_normals(OBJMesh &obj_mesh_data) const
{
obj_mesh_data.ensure_mesh_normals();
Vector<float3> lnormals;
- for (uint i = 0; i < obj_mesh_data.tot_polygons(); i++) {
+ const int tot_polygons = obj_mesh_data.tot_polygons();
+ for (uint i = 0; i < tot_polygons; i++) {
if (obj_mesh_data.is_ith_poly_smooth(i)) {
obj_mesh_data.calc_loop_normals(i, lnormals);
for (const float3 &lnormal : lnormals) {
@@ -357,7 +359,8 @@ void OBJWriter::write_poly_elements(const OBJMesh &obj_mesh_data)
void OBJWriter::write_edges_indices(const OBJMesh &obj_mesh_data) const
{
obj_mesh_data.ensure_mesh_edges();
- for (uint edge_index = 0; edge_index < obj_mesh_data.tot_edges(); edge_index++) {
+ const int tot_edges = obj_mesh_data.tot_edges();
+ for (uint edge_index = 0; edge_index < tot_edges; edge_index++) {
std::optional<std::array<int, 2>> vertex_indices = obj_mesh_data.calc_loose_edge_vert_indices(
edge_index);
if (!vertex_indices) {
diff --git a/source/blender/io/wavefront_obj/intern/obj_export_mesh.cc b/source/blender/io/wavefront_obj/intern/obj_export_mesh.cc
index 1109a017a04..cb6b0da3a14 100644
--- a/source/blender/io/wavefront_obj/intern/obj_export_mesh.cc
+++ b/source/blender/io/wavefront_obj/intern/obj_export_mesh.cc
@@ -47,9 +47,8 @@ namespace blender::io::obj {
* meshes.
*/
OBJMesh::OBJMesh(Depsgraph *depsgraph, const OBJExportParams &export_params, Object *export_object)
- : depsgraph_(depsgraph), export_object_eval_(export_object)
{
- export_object_eval_ = DEG_get_evaluated_object(depsgraph_, export_object);
+ export_object_eval_ = DEG_get_evaluated_object(depsgraph, export_object);
export_mesh_eval_ = BKE_object_get_evaluated_mesh(export_object_eval_);
mesh_eval_needs_free_ = false;
@@ -57,7 +56,7 @@ OBJMesh::OBJMesh(Depsgraph *depsgraph, const OBJExportParams &export_params, Obj
/* Curves and NURBS surfaces need a new mesh when they're
* exported in the form of vertices and edges.
*/
- export_mesh_eval_ = BKE_mesh_new_from_object(depsgraph_, export_object_eval_, true);
+ export_mesh_eval_ = BKE_mesh_new_from_object(depsgraph, export_object_eval_, true);
/* Since a new mesh been allocated, it needs to be freed in the destructor. */
mesh_eval_needs_free_ = true;
}
@@ -217,20 +216,18 @@ void OBJMesh::ensure_mesh_edges() const
*/
void OBJMesh::calc_smooth_groups(const bool use_bitflags)
{
- int tot_smooth_groups = 0;
poly_smooth_groups_ = BKE_mesh_calc_smoothgroups(export_mesh_eval_->medge,
export_mesh_eval_->totedge,
export_mesh_eval_->mpoly,
export_mesh_eval_->totpoly,
export_mesh_eval_->mloop,
export_mesh_eval_->totloop,
- &tot_smooth_groups,
+ &tot_smooth_groups_,
use_bitflags);
- tot_smooth_groups_ = tot_smooth_groups;
}
/**
- * Return mat_nr-th material of the object.
+ * Return mat_nr-th material of the object. The given index should be zero-based.
*/
const Material *OBJMesh::get_object_material(const short mat_nr) const
{
@@ -306,7 +303,8 @@ void OBJMesh::calc_poly_vertex_indices(const uint poly_index,
{
const MPoly &mpoly = export_mesh_eval_->mpoly[poly_index];
const MLoop *mloop = &export_mesh_eval_->mloop[mpoly.loopstart];
- for (uint loop_index = 0; loop_index < mpoly.totloop; loop_index++) {
+ const int totloop = mpoly.totloop;
+ for (uint loop_index = 0; loop_index < totloop; loop_index++) {
r_poly_vertex_indices[loop_index] = mloop[loop_index].v;
}
}
diff --git a/source/blender/io/wavefront_obj/intern/obj_export_mesh.hh b/source/blender/io/wavefront_obj/intern/obj_export_mesh.hh
index cbe37178739..636992abba2 100644
--- a/source/blender/io/wavefront_obj/intern/obj_export_mesh.hh
+++ b/source/blender/io/wavefront_obj/intern/obj_export_mesh.hh
@@ -50,10 +50,9 @@ struct CustomBMeshDeleter {
};
using unique_bmesh_ptr = std::unique_ptr<BMesh, CustomBMeshDeleter>;
+
class OBJMesh : NonMovable, NonCopyable {
private:
- Depsgraph *depsgraph_;
-
Object *export_object_eval_;
Mesh *export_mesh_eval_;
/**
More information about the Bf-blender-cvs
mailing list