[Bf-blender-cvs] [baba5d22141] master: Multires: Avoid retriving mesh arrays for every element
Hans Goudey
noreply at git.blender.org
Mon Nov 28 15:57:13 CET 2022
Commit: baba5d22141d450bff9f96361998dd463762ca74
Author: Hans Goudey
Date: Sun Nov 27 22:30:09 2022 -0600
Branches: master
https://developer.blender.org/rBbaba5d22141d450bff9f96361998dd463762ca74
Multires: Avoid retriving mesh arrays for every element
Based on the surrounding code this probably wasn't a
bottleneck, but it's nice to avoid in principle anyway.
===================================================================
M source/blender/blenkernel/intern/multires_unsubdivide.c
===================================================================
diff --git a/source/blender/blenkernel/intern/multires_unsubdivide.c b/source/blender/blenkernel/intern/multires_unsubdivide.c
index 353fbec6933..28bd199a967 100644
--- a/source/blender/blenkernel/intern/multires_unsubdivide.c
+++ b/source/blender/blenkernel/intern/multires_unsubdivide.c
@@ -963,11 +963,9 @@ static void multires_unsubdivide_prepare_original_bmesh_for_extract(
* Checks the orientation of the loops to flip the x and y axis when extracting the grid if
* necessary.
*/
-static bool multires_unsubdivide_flip_grid_x_axis(Mesh *mesh, int poly, int loop, int v_x)
+static bool multires_unsubdivide_flip_grid_x_axis(
+ const MPoly *polys, const MLoop *loops, int poly, int loop, int v_x)
{
- const MPoly *polys = BKE_mesh_polys(mesh);
- const MLoop *loops = BKE_mesh_loops(mesh);
-
const MPoly *p = &polys[poly];
const MLoop *l_first = &loops[p->loopstart];
@@ -1037,6 +1035,9 @@ static void multires_unsubdivide_extract_grids(MultiresUnsubdivideContext *conte
const int base_l_offset = CustomData_get_n_offset(
&bm_base_mesh->ldata, CD_PROP_INT32, base_l_layer_index);
+ const MPoly *polys = BKE_mesh_polys(base_mesh);
+ const MLoop *loops = BKE_mesh_loops(base_mesh);
+
/* Main loop for extracting the grids. Iterates over the base mesh vertices. */
BM_ITER_MESH (v, &iter, bm_base_mesh, BM_VERTS_OF_MESH) {
@@ -1074,7 +1075,7 @@ static void multires_unsubdivide_extract_grids(MultiresUnsubdivideContext *conte
/* Check the orientation of the loops in case that is needed to flip the x and y axis
* when extracting the grid. */
const bool flip_grid = multires_unsubdivide_flip_grid_x_axis(
- base_mesh, base_mesh_face_index, base_mesh_loop_index, corner_x_index);
+ polys, loops, base_mesh_face_index, base_mesh_loop_index, corner_x_index);
/* Extract the grid for that loop. */
context->base_mesh_grids[base_mesh_loop_index].grid_index = base_mesh_loop_index;
More information about the Bf-blender-cvs
mailing list