From 62cc226101fab61b5ae2f18f8cbe8f1e5ac6ce82 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 10 Mar 2017 03:15:58 +1100 Subject: 3D View: x-ray support for depth picking Selection loop would draw the selection ignoring xray. Now draw in a separate pass after clearing the depth buffer, as with regular drawing. Also disable depth sorting, caller can sort the hit-list by depth if needed. --- source/blender/editors/space_view3d/view3d_intern.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'source/blender/editors/space_view3d/view3d_intern.h') diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h index 87b3d95cd4e..c2b8d1f8bda 100644 --- a/source/blender/editors/space_view3d/view3d_intern.h +++ b/source/blender/editors/space_view3d/view3d_intern.h @@ -143,6 +143,8 @@ void draw_motion_paths_cleanup(View3D *v3d); /* drawobject.c */ void draw_object(Scene *scene, struct ARegion *ar, View3D *v3d, Base *base, const short dflag); +void draw_object_select(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short dflag); + bool draw_glsl_material(Scene *scene, struct Object *ob, View3D *v3d, const char dt); void draw_object_instance(Scene *scene, View3D *v3d, RegionView3D *rv3d, struct Object *ob, const char dt, int outline); void draw_object_backbufsel(Scene *scene, View3D *v3d, RegionView3D *rv3d, struct Object *ob); @@ -195,7 +197,11 @@ void draw_sim_debug_data(Scene *scene, View3D *v3d, ARegion *ar); void view3d_main_region_draw(const struct bContext *C, struct ARegion *ar); void ED_view3d_draw_depth(Scene *scene, struct ARegion *ar, View3D *v3d, bool alphaoverride); void ED_view3d_draw_depth_gpencil(Scene *scene, ARegion *ar, View3D *v3d); -void ED_view3d_after_add(ListBase *lb, Base *base, const short dflag); +void ED_view3d_draw_select_loop( + ViewContext *vc, Scene *scene, View3D *v3d, ARegion *ar, + bool use_obedit_skip, bool use_nearest); + +void ED_view3d_after_add(ListBase *lb, Base *base, const short dflag);\ void circf(float x, float y, float rad); void circ(float x, float y, float rad); -- cgit v1.2.3