[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