From 4de50d757233009ccd5db8538fd036a62ce58648 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 27 Feb 2018 20:16:53 +1100 Subject: GPU_select: utility function to finalize selection Needed for depth picking in 2.8 --- source/blender/gpu/intern/gpu_select_pick.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'source/blender/gpu/intern/gpu_select_pick.c') diff --git a/source/blender/gpu/intern/gpu_select_pick.c b/source/blender/gpu/intern/gpu_select_pick.c index 0a77420fa25..d7a3ad07558 100644 --- a/source/blender/gpu/intern/gpu_select_pick.c +++ b/source/blender/gpu/intern/gpu_select_pick.c @@ -526,6 +526,19 @@ bool gpu_select_pick_load_id(unsigned int id) return true; } + /** + * (Optional), call before 'gpu_select_pick_end' if GL context is not kept. + * is not compatible with regular select case. + * */ +void gpu_select_pick_finalize(void) +{ + GPUPickState *ps = &g_pick_state; + if (ps->gl.is_init) { + /* force finishing last pass */ + gpu_select_pick_load_id(ps->gl.prev_id); + } +} + unsigned int gpu_select_pick_end(void) { GPUPickState *ps = &g_pick_state; @@ -535,10 +548,7 @@ unsigned int gpu_select_pick_end(void) #endif if (ps->is_cached == false) { - if (ps->gl.is_init) { - /* force finishing last pass */ - gpu_select_pick_load_id(ps->gl.prev_id); - } + gpu_select_pick_finalize(); glPopAttrib(); glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); -- cgit v1.2.3