[Bf-blender-cvs] [5116bfd51f1] refactor-mesh-selection-generic: Merge branch 'master' into refactor-mesh-selection-generic
Hans Goudey
noreply at git.blender.org
Fri Aug 26 04:35:03 CEST 2022
Commit: 5116bfd51f173a26dd5f169518f986327d2d2f27
Author: Hans Goudey
Date: Thu Aug 25 13:23:10 2022 -0400
Branches: refactor-mesh-selection-generic
https://developer.blender.org/rB5116bfd51f173a26dd5f169518f986327d2d2f27
Merge branch 'master' into refactor-mesh-selection-generic
===================================================================
===================================================================
diff --cc source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_edituv.cc
index 7016b81a8cf,fa39957a7fc..df482a694ad
--- a/source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_edituv.cc
+++ b/source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_edituv.cc
@@@ -294,11 -283,12 +283,13 @@@ static void extract_edituv_lines_iter_s
const MPoly *coarse_poly)
{
MeshExtract_EditUvElem_Data *data = static_cast<MeshExtract_EditUvElem_Data *>(_data);
- const int coarse_quad_index = coarse_poly - mr->mpoly;
- const bool hidden = mr->hide_poly && mr->hide_poly[coarse_quad_index];
+
int *subdiv_loop_edge_index = (int *)GPU_vertbuf_get_data(subdiv_cache->edges_orig_index);
+ const BMFace *efa = bm_original_face_get(mr, coarse_poly - mr->mpoly);
+ const bool mp_hidden = (efa) ? BM_elem_flag_test_bool(efa, BM_ELEM_HIDDEN) : true;
+ const bool mp_select = (efa) ? BM_elem_flag_test_bool(efa, BM_ELEM_SELECT) : false;
+
uint start_loop_idx = subdiv_quad_index * 4;
uint end_loop_idx = (subdiv_quad_index + 1) * 4;
for (uint loop_idx = start_loop_idx; loop_idx < end_loop_idx; loop_idx++) {
diff --cc source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_lines_paint_mask.cc
index a5de87bdebd,31e5c515129..f4990a0a020
--- a/source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_lines_paint_mask.cc
+++ b/source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_lines_paint_mask.cc
@@@ -124,11 -121,10 +123,10 @@@ static void extract_lines_paint_mask_it
}
else {
if (!((mr->use_hide && mr->hide_edge && mr->hide_edge[coarse_edge_index]) ||
- ((mr->extract_type == MR_EXTRACT_MAPPED) && (mr->e_origindex) &&
- (mr->e_origindex[coarse_edge_index] == ORIGINDEX_NONE)))) {
+ ((mr->e_origindex) && (mr->e_origindex[coarse_edge_index] == ORIGINDEX_NONE)))) {
const uint ml_index_other = (loop_idx == (end_loop_idx - 1)) ? start_loop_idx :
loop_idx + 1;
- if (coarse_quad->flag & ME_FACE_SEL) {
+ if (mr->selection_poly && mr->selection_poly[coarse_quad_index]) {
if (BLI_BITMAP_TEST_AND_SET_ATOMIC(data->select_map, coarse_edge_index)) {
/* Hide edge as it has more than 2 selected loop. */
GPU_indexbuf_set_line_restart(&data->elb, subdiv_edge_index);
diff --cc source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_lnor.cc
index b9749a264a0,01d07fa5f83..7fa14bf5480
--- a/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_lnor.cc
+++ b/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_lnor.cc
@@@ -80,13 -80,13 +80,13 @@@ static void extract_lnor_iter_poly_mesh
}
/* Flag for paint mode overlay.
- * Only use MR_EXTRACT_MAPPED in edit mode where it is used to display the edge-normals.
+ * Only use origindex in edit mode where it is used to display the edge-normals.
* In paint mode it will use the un-mapped data to draw the wire-frame. */
- if (hidden || (mr->edit_bmesh && mr->extract_type == MR_EXTRACT_MAPPED && (mr->v_origindex) &&
- mr->v_origindex[ml->v] == ORIGINDEX_NONE)) {
+ if (hidden ||
+ (mr->edit_bmesh && (mr->v_origindex) && mr->v_origindex[ml->v] == ORIGINDEX_NONE)) {
lnor_data->w = -1;
}
- else if (mp->flag & ME_FACE_SEL) {
+ else if (mr->selection_poly && mr->selection_poly[mp_index]) {
lnor_data->w = 1;
}
else {
@@@ -205,13 -205,13 +205,13 @@@ static void extract_lnor_hq_iter_poly_m
}
/* Flag for paint mode overlay.
- * Only use #MR_EXTRACT_MAPPED in edit mode where it is used to display the edge-normals.
+ * Only use origindex in edit mode where it is used to display the edge-normals.
* In paint mode it will use the un-mapped data to draw the wire-frame. */
- if (hidden || (mr->edit_bmesh && mr->extract_type == MR_EXTRACT_MAPPED && (mr->v_origindex) &&
- mr->v_origindex[ml->v] == ORIGINDEX_NONE)) {
+ if (hidden ||
+ (mr->edit_bmesh && (mr->v_origindex) && mr->v_origindex[ml->v] == ORIGINDEX_NONE)) {
lnor_data->w = -1;
}
- else if (mp->flag & ME_FACE_SEL) {
+ else if (mr->selection_poly && mr->selection_poly[mp_index]) {
lnor_data->w = 1;
}
else {
diff --cc source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_pos_nor.cc
index b172b5fb252,a822845c688..f13df9614c3
--- 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,11 -101,10 +101,10 @@@ static void extract_pos_nor_iter_poly_m
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) {
+ else if (mr->selection_vert && mr->selection_vert[ml->v]) {
vert->nor.w = 1;
}
else {
@@@ -449,11 -448,10 +448,10 @@@ static void extract_pos_nor_hq_iter_pol
/* 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) {
+ else if (mr->selection_vert && mr->selection_vert[ml->v]) {
vert->nor[3] = 1;
}
else {
More information about the Bf-blender-cvs
mailing list