Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/source/blender/draw/engines/select/select_engine.c b/source/blender/draw/engines/select/select_engine.c
- index 35df6e1d31c..065fc790bd0 100644
- --- a/source/blender/draw/engines/select/select_engine.c
- +++ b/source/blender/draw/engines/select/select_engine.c
- @@ -280,26 +280,8 @@ static void select_cache_populate(void *vedata, Object *ob)
- &ob->id, &draw_engine_select_type);
- if (!e_data.context.is_dirty && sel_data && sel_data->is_drawn) {
- - /* The object indices have already been drawn, you need to redraw the
- - * depth pass if a new object is added */
- -
- - /* For now just make sure that the batches used in `select_cache_finish`
- - * have been requested. */
- - struct Mesh *me = ob->data;
- - if (e_data.context.select_mode & SCE_SELECT_FACE) {
- - DRW_mesh_batch_cache_get_triangles_with_select_id(me);
- - }
- - else {
- - DRW_mesh_batch_cache_get_surface(me);
- - }
- -
- - if (e_data.context.select_mode & SCE_SELECT_EDGE) {
- - DRW_mesh_batch_cache_get_edges_with_select_id(me);
- - }
- -
- - if (e_data.context.select_mode & SCE_SELECT_VERTEX) {
- - DRW_mesh_batch_cache_get_verts_with_select_id(me);
- - }
- + /* The object indices have already been drawn.
- + * Redraw the depth pass if a new object is added */
- return;
- }
- @@ -341,6 +323,7 @@ static void select_cache_populate(void *vedata, Object *ob)
- static void select_cache_finish(void *vedata)
- {
- SELECTID_StorageList *stl = ((SELECTID_Data *)vedata)->stl;
- + const DRWContextState *draw_ctx = DRW_context_state_get();
- if (e_data.runtime_new_objects) {
- /* Fill depth pass. */
- @@ -367,6 +350,12 @@ static void select_cache_finish(void *vedata)
- struct GPUBatch *geom_verts = DRW_mesh_batch_cache_get_verts_with_select_id(me);
- DRW_shgroup_call_obmat(stl->g_data->shgrp_depth_only, geom_verts, ob->obmat);
- }
- +
- + const bool is_paint_mode = draw_ctx->object_edit == NULL;
- + const bool use_hide = !is_paint_mode || DRW_object_use_hide_faces(ob);
- +
- + DRW_mesh_batch_cache_create_requested(
- + ob, ob->data, draw_ctx->scene, is_paint_mode, use_hide);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement