Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2018-02-27 12:45:20 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-02-27 12:45:33 +0300
commitaa592cc00cb4d434afec53dd5c3869d19bb48327 (patch)
treec86de0a229005712c5f3cd2812e3a9fcdac1b9aa /source/blender/gpu/intern/gpu_select_pick.c
parent50d03de60039f8d474cbf5711260e43a28d2d177 (diff)
parenta7ef3126115e907e03efac2297eea725017477f2 (diff)
Merge branch 'master' into blender2.8
Diffstat (limited to 'source/blender/gpu/intern/gpu_select_pick.c')
-rw-r--r--source/blender/gpu/intern/gpu_select_pick.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/source/blender/gpu/intern/gpu_select_pick.c b/source/blender/gpu/intern/gpu_select_pick.c
index 2d36c6f120c..8c102a307ea 100644
--- a/source/blender/gpu/intern/gpu_select_pick.c
+++ b/source/blender/gpu/intern/gpu_select_pick.c
@@ -257,6 +257,7 @@ typedef struct GPUPickState {
/* Set after first draw */
bool is_init;
+ bool is_finalized;
unsigned int prev_id;
} gl;
@@ -364,6 +365,7 @@ void gpu_select_pick_begin(
#endif
ps->gl.is_init = false;
+ ps->gl.is_finalized = false;
ps->gl.prev_id = 0;
}
else {
@@ -535,6 +537,7 @@ void gpu_select_pick_finalize(void)
/* force finishing last pass */
gpu_select_pick_load_id(ps->gl.prev_id);
}
+ ps->gl.is_finalized = true;
}
unsigned int gpu_select_pick_end(void)
@@ -546,7 +549,9 @@ unsigned int gpu_select_pick_end(void)
#endif
if (ps->is_cached == false) {
- gpu_select_pick_finalize();
+ if (ps->gl.is_finalized == false) {
+ gpu_select_pick_finalize();
+ }
gpuPopAttrib();
glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);