diff options
author | Brecht Van Lommel <brecht@blender.org> | 2022-08-16 18:34:40 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2022-08-16 19:09:27 +0300 |
commit | b247588dc0f48f2fb713f6571ef0129a38760b00 (patch) | |
tree | 68fff9518b93ee3fdc5d99b23ba7d04a351ac98e /source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_pos_nor.cc | |
parent | 74d716ce23a64ed23b85e9c7a98f153f33dac952 (diff) |
Cleanup: some refactoring in mapped mesh extraction
* Flip the logic to first detect if we are dealing with an unmodified mesh
in editmode. And then if not, detect if we need a mapping or not.
* runtime.is_original is only valid for the bmesh wrapper. Rename it to clarify
that and only check it when the mesh is a bmesh wrapper.
* Remove MR_EXTRACT_MAPPED and instead check only for the existence of the
origindex arrays. Previously it would sometimes access those arrays without
MR_EXTRACT_MAPPED set, which according to a comment means they are invalid.
Differential Revision: https://developer.blender.org/D15676
Diffstat (limited to 'source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_pos_nor.cc')
-rw-r--r-- | source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_pos_nor.cc | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_pos_nor.cc b/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_pos_nor.cc index 313838be9e8..a822845c688 100644 --- a/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_pos_nor.cc +++ b/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_pos_nor.cc @@ -101,8 +101,7 @@ static void extract_pos_nor_iter_poly_mesh(const MeshRenderData *mr, vert->nor = data->normals[ml->v].low; /* Flag for paint mode overlay. */ if (poly_hidden || vert_hidden || - ((mr->extract_type == MR_EXTRACT_MAPPED) && (mr->v_origindex) && - (mr->v_origindex[ml->v] == ORIGINDEX_NONE))) { + ((mr->v_origindex) && (mr->v_origindex[ml->v] == ORIGINDEX_NONE))) { vert->nor.w = -1; } else if (mv->flag & SELECT) { @@ -449,8 +448,7 @@ static void extract_pos_nor_hq_iter_poly_mesh(const MeshRenderData *mr, /* Flag for paint mode overlay. */ if (poly_hidden || vert_hidden || - ((mr->extract_type == MR_EXTRACT_MAPPED) && (mr->v_origindex) && - (mr->v_origindex[ml->v] == ORIGINDEX_NONE))) { + ((mr->v_origindex) && (mr->v_origindex[ml->v] == ORIGINDEX_NONE))) { vert->nor[3] = -1; } else if (mv->flag & SELECT) { |