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:16:53 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-02-27 12:16:53 +0300
commit4de50d757233009ccd5db8538fd036a62ce58648 (patch)
tree59e20b37c8b7ef8330cd783abdab4871c9599ef7 /source/blender/gpu/intern/gpu_select.c
parent50b95211bf5263671cc577bd34fbf0ff04381aa8 (diff)
GPU_select: utility function to finalize selection
Needed for depth picking in 2.8
Diffstat (limited to 'source/blender/gpu/intern/gpu_select.c')
-rw-r--r--source/blender/gpu/intern/gpu_select.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/source/blender/gpu/intern/gpu_select.c b/source/blender/gpu/intern/gpu_select.c
index 632b0cfee1b..e2837d96b0f 100644
--- a/source/blender/gpu/intern/gpu_select.c
+++ b/source/blender/gpu/intern/gpu_select.c
@@ -150,6 +150,29 @@ bool GPU_select_load_id(unsigned int id)
}
/**
+ * Needed when GL context of #GPU_select_end
+ * can't be used to finalize selection operations
+ * (because of context changes).
+ */
+void GPU_select_finalize(void)
+{
+ if (!g_select_state.select_is_active)
+ return;
+
+ switch (g_select_state.algorithm) {
+ case ALGO_GL_LEGACY:
+ case ALGO_GL_QUERY:
+ {
+ break;
+ }
+ default: /* ALGO_GL_PICK */
+ {
+ gpu_select_pick_finalize();
+ }
+ }
+}
+
+/**
* Cleanup and flush selection results to buffer.
* Return number of hits and hits in buffer.
* if \a dopass is true, we will do a second pass with occlusion queries to get the closest hit.