From ebbb72187aae7eb9803bf0202817ca73a67d0212 Mon Sep 17 00:00:00 2001 From: Hans Goudey Date: Mon, 27 May 2024 23:13:34 -0400 Subject: [PATCH] Cleanup: Use references, const, for mesh edit data flag extraction --- .../intern/mesh_extractors/extract_mesh.cc | 28 ++++---- .../intern/mesh_extractors/extract_mesh.hh | 10 +-- .../extract_mesh_vbo_edit_data.cc | 72 +++++++++---------- .../extract_mesh_vbo_edituv_data.cc | 20 +++--- .../extract_mesh_vbo_fdots_edituv_data.cc | 4 +- source/blender/editors/include/ED_uvedit.hh | 4 +- .../blender/editors/uvedit/uvedit_select.cc | 4 +- 7 files changed, 71 insertions(+), 71 deletions(-) diff --git a/source/blender/draw/intern/mesh_extractors/extract_mesh.cc b/source/blender/draw/intern/mesh_extractors/extract_mesh.cc index a6f995c0a56..429dabe7d01 100644 --- a/source/blender/draw/intern/mesh_extractors/extract_mesh.cc +++ b/source/blender/draw/intern/mesh_extractors/extract_mesh.cc @@ -80,20 +80,20 @@ const MeshExtract *mesh_extract_override_get(const MeshExtract *extractor, void mesh_render_data_face_flag(const MeshRenderData &mr, const BMFace *efa, const BMUVOffsets offsets, - EditLoopData *eattr) + EditLoopData &eattr) { if (efa == mr.efa_act) { - eattr->v_flag |= VFLAG_FACE_ACTIVE; + eattr.v_flag |= VFLAG_FACE_ACTIVE; } if (BM_elem_flag_test(efa, BM_ELEM_SELECT)) { - eattr->v_flag |= VFLAG_FACE_SELECTED; + eattr.v_flag |= VFLAG_FACE_SELECTED; } if (efa == mr.efa_act_uv) { - eattr->v_flag |= VFLAG_FACE_UV_ACTIVE; + eattr.v_flag |= VFLAG_FACE_UV_ACTIVE; } if ((offsets.uv != -1) && uvedit_face_select_test_ex(mr.toolsettings, (BMFace *)efa, offsets)) { - eattr->v_flag |= VFLAG_FACE_UV_SELECT; + eattr.v_flag |= VFLAG_FACE_UV_SELECT; } #ifdef WITH_FREESTYLE @@ -101,39 +101,39 @@ void mesh_render_data_face_flag(const MeshRenderData &mr, const FreestyleFace *ffa = (const FreestyleFace *)BM_ELEM_CD_GET_VOID_P(efa, mr.freestyle_face_ofs); if (ffa->flag & FREESTYLE_FACE_MARK) { - eattr->v_flag |= VFLAG_FACE_FREESTYLE; + eattr.v_flag |= VFLAG_FACE_FREESTYLE; } } #endif } void mesh_render_data_loop_flag(const MeshRenderData &mr, - BMLoop *l, + const BMLoop *l, const BMUVOffsets offsets, - EditLoopData *eattr) + EditLoopData &eattr) { if (offsets.uv == -1) { return; } if (BM_ELEM_CD_GET_BOOL(l, offsets.pin)) { - eattr->v_flag |= VFLAG_VERT_UV_PINNED; + eattr.v_flag |= VFLAG_VERT_UV_PINNED; } if (uvedit_uv_select_test_ex(mr.toolsettings, l, offsets)) { - eattr->v_flag |= VFLAG_VERT_UV_SELECT; + eattr.v_flag |= VFLAG_VERT_UV_SELECT; } } void mesh_render_data_loop_edge_flag(const MeshRenderData &mr, - BMLoop *l, + const BMLoop *l, const BMUVOffsets offsets, - EditLoopData *eattr) + EditLoopData &eattr) { if (offsets.uv == -1) { return; } if (uvedit_edge_select_test_ex(mr.toolsettings, l, offsets)) { - eattr->v_flag |= VFLAG_EDGE_UV_SELECT; - eattr->v_flag |= VFLAG_VERT_UV_SELECT; + eattr.v_flag |= VFLAG_EDGE_UV_SELECT; + eattr.v_flag |= VFLAG_VERT_UV_SELECT; } } diff --git a/source/blender/draw/intern/mesh_extractors/extract_mesh.hh b/source/blender/draw/intern/mesh_extractors/extract_mesh.hh index ef30919ee65..70310e5c636 100644 --- a/source/blender/draw/intern/mesh_extractors/extract_mesh.hh +++ b/source/blender/draw/intern/mesh_extractors/extract_mesh.hh @@ -316,15 +316,15 @@ const MeshExtract *mesh_extract_override_get(const MeshExtract *extractor, bool void mesh_render_data_face_flag(const MeshRenderData &mr, const BMFace *efa, BMUVOffsets offsets, - EditLoopData *eattr); + EditLoopData &eattr); void mesh_render_data_loop_flag(const MeshRenderData &mr, - BMLoop *l, + const BMLoop *l, BMUVOffsets offsets, - EditLoopData *eattr); + EditLoopData &eattr); void mesh_render_data_loop_edge_flag(const MeshRenderData &mr, - BMLoop *l, + const BMLoop *l, BMUVOffsets offsets, - EditLoopData *eattr); + EditLoopData &eattr); template void convert_normals(Span src, MutableSpan dst); diff --git a/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_edit_data.cc b/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_edit_data.cc index a8fa0ad465c..1885d1a2716 100644 --- a/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_edit_data.cc +++ b/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_edit_data.cc @@ -22,29 +22,29 @@ namespace blender::draw { static void mesh_render_data_edge_flag(const MeshRenderData &mr, const BMEdge *eed, - EditLoopData *eattr) + EditLoopData &eattr) { const ToolSettings *ts = mr.toolsettings; const bool is_vertex_select_mode = (ts != nullptr) && (ts->selectmode & SCE_SELECT_VERTEX) != 0; const bool is_face_only_select_mode = (ts != nullptr) && (ts->selectmode == SCE_SELECT_FACE); if (eed == mr.eed_act) { - eattr->e_flag |= VFLAG_EDGE_ACTIVE; + eattr.e_flag |= VFLAG_EDGE_ACTIVE; } if (!is_vertex_select_mode && BM_elem_flag_test(eed, BM_ELEM_SELECT)) { - eattr->e_flag |= VFLAG_EDGE_SELECTED; + eattr.e_flag |= VFLAG_EDGE_SELECTED; } if (is_vertex_select_mode && BM_elem_flag_test(eed->v1, BM_ELEM_SELECT) && BM_elem_flag_test(eed->v2, BM_ELEM_SELECT)) { - eattr->e_flag |= VFLAG_EDGE_SELECTED; - eattr->e_flag |= VFLAG_VERT_SELECTED; + eattr.e_flag |= VFLAG_EDGE_SELECTED; + eattr.e_flag |= VFLAG_VERT_SELECTED; } if (BM_elem_flag_test(eed, BM_ELEM_SEAM)) { - eattr->e_flag |= VFLAG_EDGE_SEAM; + eattr.e_flag |= VFLAG_EDGE_SEAM; } if (!BM_elem_flag_test(eed, BM_ELEM_SMOOTH)) { - eattr->e_flag |= VFLAG_EDGE_SHARP; + eattr.e_flag |= VFLAG_EDGE_SHARP; } /* Use active edge color for active face edges because @@ -55,7 +55,7 @@ static void mesh_render_data_edge_flag(const MeshRenderData &mr, if (is_face_only_select_mode) { if (mr.efa_act != nullptr) { if (BM_edge_in_face(eed, mr.efa_act)) { - eattr->e_flag |= VFLAG_EDGE_ACTIVE; + eattr.e_flag |= VFLAG_EDGE_ACTIVE; } } } @@ -64,14 +64,14 @@ static void mesh_render_data_edge_flag(const MeshRenderData &mr, if (mr.edge_crease_ofs != -1) { float crease = BM_ELEM_CD_GET_FLOAT(eed, mr.edge_crease_ofs); if (crease > 0) { - eattr->crease = uchar(ceil(crease * 15.0f)); + eattr.crease = uchar(ceil(crease * 15.0f)); } } /* Use a byte for value range */ if (mr.bweight_ofs != -1) { float bweight = BM_ELEM_CD_GET_FLOAT(eed, mr.bweight_ofs); if (bweight > 0) { - eattr->bweight = uchar(bweight * 255.0f); + eattr.bweight = uchar(bweight * 255.0f); } } #ifdef WITH_FREESTYLE @@ -79,7 +79,7 @@ static void mesh_render_data_edge_flag(const MeshRenderData &mr, const FreestyleEdge *fed = (const FreestyleEdge *)BM_ELEM_CD_GET_VOID_P(eed, mr.freestyle_edge_ofs); if (fed->flag & FREESTYLE_EDGE_MARK) { - eattr->e_flag |= VFLAG_EDGE_FREESTYLE; + eattr.e_flag |= VFLAG_EDGE_FREESTYLE; } } #endif @@ -87,19 +87,19 @@ static void mesh_render_data_edge_flag(const MeshRenderData &mr, static void mesh_render_data_vert_flag(const MeshRenderData &mr, const BMVert *eve, - EditLoopData *eattr) + EditLoopData &eattr) { if (eve == mr.eve_act) { - eattr->e_flag |= VFLAG_VERT_ACTIVE; + eattr.e_flag |= VFLAG_VERT_ACTIVE; } if (BM_elem_flag_test(eve, BM_ELEM_SELECT)) { - eattr->e_flag |= VFLAG_VERT_SELECTED; + eattr.e_flag |= VFLAG_VERT_SELECTED; } /* Use half a byte for value range */ if (mr.vert_crease_ofs != -1) { float crease = BM_ELEM_CD_GET_FLOAT(eve, mr.vert_crease_ofs); if (crease > 0) { - eattr->crease |= uchar(ceil(crease * 15.0f)) << 4; + eattr.crease |= uchar(ceil(crease * 15.0f)) << 4; } } } @@ -142,9 +142,9 @@ static void extract_edit_data_iter_face_bm(const MeshRenderData &mr, EditLoopData *data = vbo_data + l_index; memset(data, 0x0, sizeof(*data)); - mesh_render_data_face_flag(mr, f, {-1, -1, -1, -1}, data); - mesh_render_data_edge_flag(mr, l_iter->e, data); - mesh_render_data_vert_flag(mr, l_iter->v, data); + mesh_render_data_face_flag(mr, f, {-1, -1, -1, -1}, *data); + mesh_render_data_edge_flag(mr, l_iter->e, *data); + mesh_render_data_vert_flag(mr, l_iter->v, *data); } while ((l_iter = l_iter->next) != l_first); } @@ -161,13 +161,13 @@ static void extract_edit_data_iter_face_mesh(const MeshRenderData &mr, BMVert *eve = bm_original_vert_get(mr, mr.corner_verts[corner]); BMEdge *eed = bm_original_edge_get(mr, mr.corner_edges[corner]); if (efa) { - mesh_render_data_face_flag(mr, efa, {-1, -1, -1, -1}, data); + mesh_render_data_face_flag(mr, efa, {-1, -1, -1, -1}, *data); } if (eed) { - mesh_render_data_edge_flag(mr, eed, data); + mesh_render_data_edge_flag(mr, eed, *data); } if (eve) { - mesh_render_data_vert_flag(mr, eve, data); + mesh_render_data_vert_flag(mr, eve, *data); } } } @@ -180,10 +180,10 @@ static void extract_edit_data_iter_loose_edge_bm(const MeshRenderData &mr, EditLoopData *vbo_data = *(EditLoopData **)_data; EditLoopData *data = vbo_data + mr.corners_num + (loose_edge_i * 2); memset(data, 0x0, sizeof(*data) * 2); - mesh_render_data_edge_flag(mr, eed, &data[0]); + mesh_render_data_edge_flag(mr, eed, data[0]); data[1] = data[0]; - mesh_render_data_vert_flag(mr, eed->v1, &data[0]); - mesh_render_data_vert_flag(mr, eed->v2, &data[1]); + mesh_render_data_vert_flag(mr, eed->v1, data[0]); + mesh_render_data_vert_flag(mr, eed->v2, data[1]); } static void extract_edit_data_iter_loose_edge_mesh(const MeshRenderData &mr, @@ -199,14 +199,14 @@ static void extract_edit_data_iter_loose_edge_mesh(const MeshRenderData &mr, BMVert *eve1 = bm_original_vert_get(mr, edge[0]); BMVert *eve2 = bm_original_vert_get(mr, edge[1]); if (eed) { - mesh_render_data_edge_flag(mr, eed, &data[0]); + mesh_render_data_edge_flag(mr, eed, data[0]); data[1] = data[0]; } if (eve1) { - mesh_render_data_vert_flag(mr, eve1, &data[0]); + mesh_render_data_vert_flag(mr, eve1, data[0]); } if (eve2) { - mesh_render_data_vert_flag(mr, eve2, &data[1]); + mesh_render_data_vert_flag(mr, eve2, data[1]); } } @@ -219,7 +219,7 @@ static void extract_edit_data_iter_loose_vert_bm(const MeshRenderData &mr, const int offset = mr.corners_num + (mr.loose_edges_num * 2); EditLoopData *data = vbo_data + offset + loose_vert_i; memset(data, 0x0, sizeof(*data)); - mesh_render_data_vert_flag(mr, eve, data); + mesh_render_data_vert_flag(mr, eve, *data); } static void extract_edit_data_iter_loose_vert_mesh(const MeshRenderData &mr, @@ -234,7 +234,7 @@ static void extract_edit_data_iter_loose_vert_mesh(const MeshRenderData &mr, const int v_index = mr.loose_verts[loose_vert_i]; BMVert *eve = bm_original_vert_get(mr, v_index); if (eve) { - mesh_render_data_vert_flag(mr, eve, data); + mesh_render_data_vert_flag(mr, eve, *data); } } @@ -274,20 +274,20 @@ static void extract_edit_data_iter_subdiv_bm(const DRWSubdivCache &subdiv_cache, const BMVert *eve = mr.orig_index_vert ? bm_original_vert_get(mr, vert_origindex) : BM_vert_at_index(mr.bm, vert_origindex); if (eve) { - mesh_render_data_vert_flag(mr, eve, edit_loop_data); + mesh_render_data_vert_flag(mr, eve, *edit_loop_data); } } if (edge_origindex != -1) { /* NOTE: #subdiv_loop_edge_index already has the origindex layer baked in. */ const BMEdge *eed = BM_edge_at_index(mr.bm, edge_origindex); - mesh_render_data_edge_flag(mr, eed, edit_loop_data); + mesh_render_data_edge_flag(mr, eed, *edit_loop_data); } /* coarse_quad can be null when called by the mesh iteration below. */ if (coarse_quad) { /* The -1 parameter is for edit_uvs, which we don't do here. */ - mesh_render_data_face_flag(mr, coarse_quad, {-1, -1, -1, -1}, edit_loop_data); + mesh_render_data_face_flag(mr, coarse_quad, {-1, -1, -1, -1}, *edit_loop_data); } } } @@ -327,11 +327,11 @@ static void extract_edit_data_loose_geom_subdiv(const DRWSubdivCache &subdiv_cac BM_edge_at_index(mr.bm, loose_edges[i])) { EditLoopData value{}; - mesh_render_data_edge_flag(mr, edge, &value); + mesh_render_data_edge_flag(mr, edge, value); data.fill(value); - mesh_render_data_vert_flag(mr, edge->v1, &data.first()); - mesh_render_data_vert_flag(mr, edge->v2, &data.last()); + mesh_render_data_vert_flag(mr, edge->v1, data.first()); + mesh_render_data_vert_flag(mr, edge->v2, data.last()); } else { data.fill({}); @@ -346,7 +346,7 @@ static void extract_edit_data_loose_geom_subdiv(const DRWSubdivCache &subdiv_cac if (BMVert *vert = mr.orig_index_vert ? bm_original_vert_get(mr, loose_verts[i]) : BM_vert_at_index(mr.bm, loose_verts[i])) { - mesh_render_data_vert_flag(mr, vert, &value); + mesh_render_data_vert_flag(mr, vert, value); } vert_data[i] = value; } diff --git a/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_edituv_data.cc b/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_edituv_data.cc index 28e9a6c770d..4e27d76bf10 100644 --- a/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_edituv_data.cc +++ b/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_edituv_data.cc @@ -66,9 +66,9 @@ static void extract_edituv_data_iter_face_bm(const MeshRenderData &mr, MeshExtract_EditUVData_Data *data = static_cast(_data); EditLoopData *eldata = &data->vbo_data[l_index]; memset(eldata, 0x0, sizeof(*eldata)); - mesh_render_data_loop_flag(mr, l_iter, data->offsets, eldata); - mesh_render_data_face_flag(mr, f, data->offsets, eldata); - mesh_render_data_loop_edge_flag(mr, l_iter, data->offsets, eldata); + mesh_render_data_loop_flag(mr, l_iter, data->offsets, *eldata); + mesh_render_data_face_flag(mr, f, data->offsets, *eldata); + mesh_render_data_loop_edge_flag(mr, l_iter, data->offsets, *eldata); } while ((l_iter = l_iter->next) != l_first); } @@ -88,8 +88,8 @@ static void extract_edituv_data_iter_face_mesh(const MeshRenderData &mr, if (eed && eve) { /* Loop on an edge endpoint. */ BMLoop *l = BM_face_edge_share_loop(efa, eed); - mesh_render_data_loop_flag(mr, l, data->offsets, eldata); - mesh_render_data_loop_edge_flag(mr, l, data->offsets, eldata); + mesh_render_data_loop_flag(mr, l, data->offsets, *eldata); + mesh_render_data_loop_edge_flag(mr, l, data->offsets, *eldata); } else { if (eed == nullptr) { @@ -101,7 +101,7 @@ static void extract_edituv_data_iter_face_mesh(const MeshRenderData &mr, if (eed) { /* Mapped points on an edge between two edit verts. */ BMLoop *l = BM_face_edge_share_loop(efa, eed); - mesh_render_data_loop_edge_flag(mr, l, data->offsets, eldata); + mesh_render_data_loop_edge_flag(mr, l, data->offsets, *eldata); } } } @@ -142,8 +142,8 @@ static void extract_edituv_data_iter_subdiv_bm(const DRWSubdivCache &subdiv_cach BMEdge *eed = BM_edge_at_index(mr.bm, edge_origindex); /* Loop on an edge endpoint. */ BMLoop *l = BM_face_edge_share_loop(const_cast(coarse_quad), eed); - mesh_render_data_loop_flag(mr, l, data->offsets, edit_loop_data); - mesh_render_data_loop_edge_flag(mr, l, data->offsets, edit_loop_data); + mesh_render_data_loop_flag(mr, l, data->offsets, *edit_loop_data); + mesh_render_data_loop_edge_flag(mr, l, data->offsets, *edit_loop_data); } else { if (edge_origindex == -1) { @@ -156,11 +156,11 @@ static void extract_edituv_data_iter_subdiv_bm(const DRWSubdivCache &subdiv_cach /* Mapped points on an edge between two edit verts. */ BMEdge *eed = BM_edge_at_index(mr.bm, edge_origindex); BMLoop *l = BM_face_edge_share_loop(const_cast(coarse_quad), eed); - mesh_render_data_loop_edge_flag(mr, l, data->offsets, edit_loop_data); + mesh_render_data_loop_edge_flag(mr, l, data->offsets, *edit_loop_data); } } - mesh_render_data_face_flag(mr, coarse_quad, data->offsets, edit_loop_data); + mesh_render_data_face_flag(mr, coarse_quad, data->offsets, *edit_loop_data); } } diff --git a/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_fdots_edituv_data.cc b/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_fdots_edituv_data.cc index b4f15bb8f6a..4c3855d7a88 100644 --- a/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_fdots_edituv_data.cc +++ b/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_fdots_edituv_data.cc @@ -48,7 +48,7 @@ static void extract_fdots_edituv_data_iter_face_bm(const MeshRenderData &mr, MeshExtract_EditUVFdotData_Data *data = static_cast(_data); EditLoopData *eldata = &data->vbo_data[BM_elem_index_get(f)]; memset(eldata, 0x0, sizeof(*eldata)); - mesh_render_data_face_flag(mr, f, data->offsets, eldata); + mesh_render_data_face_flag(mr, f, data->offsets,* eldata); } static void extract_fdots_edituv_data_iter_face_mesh(const MeshRenderData &mr, @@ -60,7 +60,7 @@ static void extract_fdots_edituv_data_iter_face_mesh(const MeshRenderData &mr, memset(eldata, 0x0, sizeof(*eldata)); BMFace *efa = bm_original_face_get(mr, face_index); if (efa) { - mesh_render_data_face_flag(mr, efa, data->offsets, eldata); + mesh_render_data_face_flag(mr, efa, data->offsets, *eldata); } } diff --git a/source/blender/editors/include/ED_uvedit.hh b/source/blender/editors/include/ED_uvedit.hh index 200ab76b45f..e5275135066 100644 --- a/source/blender/editors/include/ED_uvedit.hh +++ b/source/blender/editors/include/ED_uvedit.hh @@ -82,8 +82,8 @@ bool ED_uvedit_test(Object *obedit); bool uvedit_face_visible_test_ex(const ToolSettings *ts, BMFace *efa); bool uvedit_face_select_test_ex(const ToolSettings *ts, BMFace *efa, BMUVOffsets offsets); -bool uvedit_edge_select_test_ex(const ToolSettings *ts, BMLoop *l, BMUVOffsets offsets); -bool uvedit_uv_select_test_ex(const ToolSettings *ts, BMLoop *l, BMUVOffsets offsets); +bool uvedit_edge_select_test_ex(const ToolSettings *ts, const BMLoop *l, BMUVOffsets offsets); +bool uvedit_uv_select_test_ex(const ToolSettings *ts, const BMLoop *l, BMUVOffsets offsets); bool uvedit_face_visible_test(const Scene *scene, BMFace *efa); bool uvedit_face_select_test(const Scene *scene, BMFace *efa, BMUVOffsets offsets); diff --git a/source/blender/editors/uvedit/uvedit_select.cc b/source/blender/editors/uvedit/uvedit_select.cc index 272a688e720..60a3f61d555 100644 --- a/source/blender/editors/uvedit/uvedit_select.cc +++ b/source/blender/editors/uvedit/uvedit_select.cc @@ -388,7 +388,7 @@ void uvedit_face_select_disable(const Scene *scene, } } -bool uvedit_edge_select_test_ex(const ToolSettings *ts, BMLoop *l, const BMUVOffsets offsets) +bool uvedit_edge_select_test_ex(const ToolSettings *ts, const BMLoop *l, const BMUVOffsets offsets) { BLI_assert(offsets.select_vert >= 0); BLI_assert(offsets.select_edge >= 0); @@ -585,7 +585,7 @@ void uvedit_edge_select_disable(const Scene *scene, } } -bool uvedit_uv_select_test_ex(const ToolSettings *ts, BMLoop *l, const BMUVOffsets offsets) +bool uvedit_uv_select_test_ex(const ToolSettings *ts, const BMLoop *l, const BMUVOffsets offsets) { BLI_assert(offsets.select_vert >= 0); if (ts->uv_flag & UV_SYNC_SELECTION) {