DRW: Refactor to support draw call batching
Reviewers: brecht Differential Revision: D4997
This commit is contained in:
@@ -101,17 +101,19 @@ static int bm_face_isect_pair_swap(BMFace *f, void *UNUSED(user_data))
|
||||
/**
|
||||
* Use for intersect and boolean.
|
||||
*/
|
||||
static void edbm_intersect_select(BMEditMesh *em)
|
||||
static void edbm_intersect_select(BMEditMesh *em, bool do_select)
|
||||
{
|
||||
BM_mesh_elem_hflag_disable_all(em->bm, BM_VERT | BM_EDGE | BM_FACE, BM_ELEM_SELECT, false);
|
||||
if (do_select) {
|
||||
BM_mesh_elem_hflag_disable_all(em->bm, BM_VERT | BM_EDGE | BM_FACE, BM_ELEM_SELECT, false);
|
||||
|
||||
if (em->bm->selectmode & (SCE_SELECT_VERTEX | SCE_SELECT_EDGE)) {
|
||||
BMIter iter;
|
||||
BMEdge *e;
|
||||
if (em->bm->selectmode & (SCE_SELECT_VERTEX | SCE_SELECT_EDGE)) {
|
||||
BMIter iter;
|
||||
BMEdge *e;
|
||||
|
||||
BM_ITER_MESH (e, &iter, em->bm, BM_EDGES_OF_MESH) {
|
||||
if (BM_elem_flag_test(e, BM_ELEM_TAG)) {
|
||||
BM_edge_select_set(em->bm, e, true);
|
||||
BM_ITER_MESH (e, &iter, em->bm, BM_EDGES_OF_MESH) {
|
||||
if (BM_elem_flag_test(e, BM_ELEM_TAG)) {
|
||||
BM_edge_select_set(em->bm, e, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -210,10 +212,9 @@ static int edbm_intersect_exec(bContext *C, wmOperator *op)
|
||||
em->bm, BM_elem_cb_check_hflag_enabled_simple(const BMFace *, BM_ELEM_SELECT));
|
||||
}
|
||||
|
||||
if (has_isect) {
|
||||
edbm_intersect_select(em);
|
||||
}
|
||||
else {
|
||||
edbm_intersect_select(em, has_isect);
|
||||
|
||||
if (!has_isect) {
|
||||
isect_len++;
|
||||
}
|
||||
}
|
||||
@@ -317,10 +318,9 @@ static int edbm_intersect_boolean_exec(bContext *C, wmOperator *op)
|
||||
boolean_operation,
|
||||
eps);
|
||||
|
||||
if (has_isect) {
|
||||
edbm_intersect_select(em);
|
||||
}
|
||||
else {
|
||||
edbm_intersect_select(em, has_isect);
|
||||
|
||||
if (!has_isect) {
|
||||
isect_len++;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user