Overlay Engine: Fix crash in select mode with Lock Object Modes off

Fixes T72189: Crash when Lock Object Modes off and switching from Sculpt mode to Object mode
This commit is contained in:
Clément Foucault 2019-12-05 13:31:53 +01:00
parent c402a4847b
commit d21a8dcae2
Notes: blender-bot 2023-02-14 03:03:03 +01:00
Referenced by issue #72309, Crash on 'CTRL' or 'Command'+LMB in edit mode
Referenced by issue #72189, Crash when Lock Object Modes off and switching from Sculpt mode to Object mode
5 changed files with 16 additions and 6 deletions

View File

@ -121,7 +121,9 @@ void OVERLAY_edit_curve_draw(OVERLAY_Data *vedata)
OVERLAY_PassList *psl = vedata->psl;
OVERLAY_FramebufferList *fbl = vedata->fbl;
GPU_framebuffer_bind(fbl->overlay_default_fb);
if (DRW_state_is_fbo()) {
GPU_framebuffer_bind(fbl->overlay_default_fb);
}
DRW_draw_pass(psl->edit_curve_wire_ps[0]);
DRW_draw_pass(psl->edit_curve_wire_ps[1]);

View File

@ -193,8 +193,10 @@ void OVERLAY_edit_text_draw(OVERLAY_Data *vedata)
OVERLAY_PassList *psl = vedata->psl;
DefaultFramebufferList *dfbl = DRW_viewport_framebuffer_list_get();
/* Text overlay need final color for color inversion. */
GPU_framebuffer_bind(dfbl->default_fb);
if (DRW_state_is_fbo()) {
/* Text overlay need final color for color inversion. */
GPU_framebuffer_bind(dfbl->default_fb);
}
DRW_draw_pass(psl->edit_text_wire_ps[0]);
DRW_draw_pass(psl->edit_text_wire_ps[1]);

View File

@ -75,7 +75,9 @@ void OVERLAY_edit_lattice_draw(OVERLAY_Data *vedata)
OVERLAY_PassList *psl = vedata->psl;
OVERLAY_FramebufferList *fbl = vedata->fbl;
GPU_framebuffer_bind(fbl->overlay_default_fb);
if (DRW_state_is_fbo()) {
GPU_framebuffer_bind(fbl->overlay_default_fb);
}
DRW_draw_pass(psl->edit_lattice_ps);
}

View File

@ -122,7 +122,9 @@ void OVERLAY_edit_particle_draw(OVERLAY_Data *vedata)
OVERLAY_PassList *psl = vedata->psl;
OVERLAY_FramebufferList *fbl = vedata->fbl;
GPU_framebuffer_bind(fbl->overlay_default_fb);
if (DRW_state_is_fbo()) {
GPU_framebuffer_bind(fbl->overlay_default_fb);
}
DRW_draw_pass(psl->edit_particle_ps);
}

View File

@ -62,7 +62,9 @@ void OVERLAY_sculpt_draw(OVERLAY_Data *vedata)
OVERLAY_PassList *psl = vedata->psl;
OVERLAY_FramebufferList *fbl = vedata->fbl;
GPU_framebuffer_bind(fbl->overlay_default_fb);
if (DRW_state_is_fbo()) {
GPU_framebuffer_bind(fbl->overlay_default_fb);
}
DRW_draw_pass(psl->sculpt_mask_ps);
}