From 043dd64c269702d21666ef0af4e7b02f6fe507b1 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 23 Mar 2019 02:44:22 +1100 Subject: DRW: minor optimization accessing the loop between a face and edge --- source/blender/draw/intern/draw_cache_impl_mesh.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'source/blender/draw/intern/draw_cache_impl_mesh.c') diff --git a/source/blender/draw/intern/draw_cache_impl_mesh.c b/source/blender/draw/intern/draw_cache_impl_mesh.c index e953ae21ed6..a50951c98d8 100644 --- a/source/blender/draw/intern/draw_cache_impl_mesh.c +++ b/source/blender/draw/intern/draw_cache_impl_mesh.c @@ -2399,15 +2399,10 @@ static void mesh_create_edit_vertex_loops( if (eidx != ORIGINDEX_NONE) { BMEdge *eed = BM_edge_at_index(bm, eidx); mesh_render_data_edge_flag(rdata, eed, &eattr); - /* TODO find a more efficient way to do that. */ - BMLoop *loop; - BMIter iter_loop; if (efa) { - BM_ITER_ELEM (loop, &iter_loop, efa, BM_LOOPS_OF_FACE) { - if (loop->e == eed) { - mesh_render_data_loop_flag(rdata, loop, cd_loop_uv_offset, &eattr); - break; - } + BMLoop *loop = BM_face_edge_share_loop(efa, eed); + if (loop) { + mesh_render_data_loop_flag(rdata, loop, cd_loop_uv_offset, &eattr); } } } -- cgit v1.2.3