diff options
author | Jeroen Bakker <j.bakker@atmind.nl> | 2019-06-27 12:55:23 +0300 |
---|---|---|
committer | Jeroen Bakker <j.bakker@atmind.nl> | 2019-06-27 13:53:17 +0300 |
commit | 0f983e8540529025d27fd9197f3d6e95ed476d3d (patch) | |
tree | 396a81889c822a92da6485fb247460cb6251184d /source/blender/draw/modes | |
parent | 5eb156e7692b9ab24338c73f82360338396cdbe1 (diff) |
Fix T65893: Edit Mesh Culling
The edit mesh is culled by object. When the object is not visible on
screen, the edit mesh may still be visible. This change will not cull the
edit mesh anymore.
Reviewed By: fclem
Differential Revision: https://developer.blender.org/D5144
Diffstat (limited to 'source/blender/draw/modes')
-rw-r--r-- | source/blender/draw/modes/edit_mesh_mode.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/source/blender/draw/modes/edit_mesh_mode.c b/source/blender/draw/modes/edit_mesh_mode.c index eca60c291fe..272aa552d38 100644 --- a/source/blender/draw/modes/edit_mesh_mode.c +++ b/source/blender/draw/modes/edit_mesh_mode.c @@ -667,17 +667,17 @@ static void edit_mesh_add_ob_to_pass(Scene *scene, geom_tris = DRW_mesh_batch_cache_get_edit_triangles(ob->data); geom_edges = DRW_mesh_batch_cache_get_edit_edges(ob->data); - DRW_shgroup_call(edge_shgrp, geom_edges, ob); - DRW_shgroup_call(face_shgrp, geom_tris, ob); + DRW_shgroup_call_no_cull(edge_shgrp, geom_edges, ob); + DRW_shgroup_call_no_cull(face_shgrp, geom_tris, ob); if ((tsettings->selectmode & SCE_SELECT_VERTEX) != 0) { geom_verts = DRW_mesh_batch_cache_get_edit_vertices(ob->data); - DRW_shgroup_call(vert_shgrp, geom_verts, ob); + DRW_shgroup_call_no_cull(vert_shgrp, geom_verts, ob); } if (facedot_shgrp && (tsettings->selectmode & SCE_SELECT_FACE) != 0) { geom_fcenter = DRW_mesh_batch_cache_get_edit_facedots(ob->data); - DRW_shgroup_call(facedot_shgrp, geom_fcenter, ob); + DRW_shgroup_call_no_cull(facedot_shgrp, geom_fcenter, ob); } } @@ -702,7 +702,7 @@ static void EDIT_MESH_cache_populate(void *vedata, Object *ob) if (do_show_weight) { geom = DRW_cache_mesh_surface_weights_get(ob); - DRW_shgroup_call(g_data->fweights_shgrp, geom, ob); + DRW_shgroup_call_no_cull(g_data->fweights_shgrp, geom, ob); } if (do_show_mesh_analysis && !XRAY_ACTIVE(v3d)) { @@ -713,30 +713,30 @@ static void EDIT_MESH_cache_populate(void *vedata, Object *ob) if (is_original) { geom = DRW_cache_mesh_surface_mesh_analysis_get(ob); if (geom) { - DRW_shgroup_call(g_data->mesh_analysis_shgrp, geom, ob); + DRW_shgroup_call_no_cull(g_data->mesh_analysis_shgrp, geom, ob); } } } if (do_occlude_wire || do_in_front) { geom = DRW_cache_mesh_surface_get(ob); - DRW_shgroup_call(do_in_front ? g_data->depth_shgrp_hidden_wire_in_front : - g_data->depth_shgrp_hidden_wire, - geom, - ob); + DRW_shgroup_call_no_cull(do_in_front ? g_data->depth_shgrp_hidden_wire_in_front : + g_data->depth_shgrp_hidden_wire, + geom, + ob); } if (vnormals_do) { geom = DRW_mesh_batch_cache_get_edit_vertices(ob->data); - DRW_shgroup_call(g_data->vnormals_shgrp, geom, ob); + DRW_shgroup_call_no_cull(g_data->vnormals_shgrp, geom, ob); } if (lnormals_do) { geom = DRW_mesh_batch_cache_get_edit_lnors(ob->data); - DRW_shgroup_call(g_data->lnormals_shgrp, geom, ob); + DRW_shgroup_call_no_cull(g_data->lnormals_shgrp, geom, ob); } if (fnormals_do) { geom = DRW_mesh_batch_cache_get_edit_facedots(ob->data); - DRW_shgroup_call(g_data->fnormals_shgrp, geom, ob); + DRW_shgroup_call_no_cull(g_data->fnormals_shgrp, geom, ob); } if (g_data->do_zbufclip) { |