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>2017-03-09 12:47:37 +0300
committerCampbell Barton <ideasman42@gmail.com>2017-03-09 12:47:37 +0300
commit88e8e7a0749e8c8d077ec70c91e6ca9674d239f5 (patch)
treee4eb50c14b1c029095df243a73aa1efa6fedf922 /source/blender/editors/space_view3d/view3d_view.c
parent4ab322fdd2e019ba337b2560a2d36f2175c03a32 (diff)
3D View: wrap GPU_select cache calls
Avoids including GPU_select and makes it more clear that the cache is needed for view3d_opengl_select calls. Also use typed enum for select mode.
Diffstat (limited to 'source/blender/editors/space_view3d/view3d_view.c')
-rw-r--r--source/blender/editors/space_view3d/view3d_view.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c
index 9d1a3633786..e8deaabec7a 100644
--- a/source/blender/editors/space_view3d/view3d_view.c
+++ b/source/blender/editors/space_view3d/view3d_view.c
@@ -1164,6 +1164,21 @@ static void view3d_select_loop(ViewContext *vc, Scene *scene, View3D *v3d, ARegi
}
/**
+ * Optionally cache data for multiple calls to #view3d_opengl_select
+ *
+ * just avoid GPU_select headers outside this file
+ */
+void view3d_opengl_select_cache_begin(void)
+{
+ GPU_select_cache_begin();
+}
+
+void view3d_opengl_select_cache_end(void)
+{
+ GPU_select_cache_end();
+}
+
+/**
* \warning be sure to account for a negative return value
* This is an error, "Too many objects in select buffer"
* and no action should be taken (can crash blender) if this happens
@@ -1172,7 +1187,7 @@ static void view3d_select_loop(ViewContext *vc, Scene *scene, View3D *v3d, ARegi
*/
int view3d_opengl_select(
ViewContext *vc, unsigned int *buffer, unsigned int bufsize, const rcti *input,
- int select_mode)
+ eV3DSelectMode select_mode)
{
Scene *scene = vc->scene;
View3D *v3d = vc->v3d;