Commit: c17611af951e46fb82bf43d7449240f2f829b78f Author: Campbell Barton Date: Wed Jul 11 10:38:01 2018 +0200 Branches: blender2.8 https://developer.blender.org/rBc17611af951e46fb82bf43d7449240f2f829b78f
Manipulator: changes for overlay options There are now 3 categories in the overlay popover: - Navigation - Active (camera, lamp... etc) - Tool (manipulator) The user preference for mini axis now controls if the mini axis displays minimal or a full-interactive widget. Part of design: T55863 =================================================================== M release/scripts/startup/bl_ui/space_userpref.py M release/scripts/startup/bl_ui/space_view3d.py M source/blender/blenloader/intern/versioning_defaults.c M source/blender/draw/intern/draw_manager.c M source/blender/editors/interface/resources.c M source/blender/editors/manipulator_library/manipulator_draw_utils.c M source/blender/editors/manipulator_library/manipulator_types/arrow3d_manipulator.c M source/blender/editors/mesh/editmesh_add_manipulator.c M source/blender/editors/mesh/editmesh_bevel.c M source/blender/editors/mesh/editmesh_bisect.c M source/blender/editors/mesh/editmesh_extrude_spin.c M source/blender/editors/mesh/editmesh_inset.c M source/blender/editors/space_view3d/space_view3d.c M source/blender/editors/space_view3d/view3d_draw.c M source/blender/editors/space_view3d/view3d_manipulator_armature.c M source/blender/editors/space_view3d/view3d_manipulator_camera.c M source/blender/editors/space_view3d/view3d_manipulator_empty.c M source/blender/editors/space_view3d/view3d_manipulator_forcefield.c M source/blender/editors/space_view3d/view3d_manipulator_lamp.c M source/blender/editors/space_view3d/view3d_manipulator_navigate.c M source/blender/editors/space_view3d/view3d_ops.c M source/blender/editors/transform/transform.h M source/blender/editors/transform/transform_generics.c M source/blender/editors/transform/transform_manipulator_3d.c M source/blender/makesdna/DNA_userdef_types.h M source/blender/makesdna/DNA_view3d_types.h M source/blender/makesrna/intern/rna_space.c M source/blender/makesrna/intern/rna_userdef.c =================================================================== diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py index e44fd6e09db..ca96c79b2b4 100644 --- a/release/scripts/startup/bl_ui/space_userpref.py +++ b/release/scripts/startup/bl_ui/space_userpref.py @@ -238,15 +238,15 @@ class USERPREF_PT_interface(Panel): col.separator() - col.prop(view, "show_manipulator_navigate") + # col.prop(view, "show_manipulator_navigate") sub = col.column(align=True) - sub.prop(view, "show_mini_axis", text="Display Mini Axis") - sub.active = not view.show_manipulator_navigate + sub.label("3D Viewport Axis:") + sub.row().prop(view, "mini_axis_type", expand=True) sub = col.column(align=True) - sub.active = view.show_mini_axis + sub.active = view.mini_axis_type == 'MINIMAL' sub.prop(view, "mini_axis_size", text="Size") sub.prop(view, "mini_axis_brightness", text="Brightness") @@ -258,9 +258,7 @@ class USERPREF_PT_interface(Panel): #col.label(text="Open Toolbox Delay:") #col.prop(view, "open_left_mouse_delay", text="Hold LMB") #col.prop(view, "open_right_mouse_delay", text="Hold RMB") - col.prop(view, "show_manipulator", text="Transform Manipulator") - # Currently not working - # col.prop(view, "show_manipulator_shaded") + col.prop(view, "show_manipulator", text="Manipulators") sub = col.column() sub.active = view.show_manipulator sub.prop(view, "manipulator_size", text="Size") diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index b484bf08c3b..3e97877c115 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -3882,6 +3882,20 @@ class VIEW3D_PT_overlay(Panel): sub = split.column() sub.prop(view, "show_manipulator", text="Manipulators") + has_manipulator = view.show_manipulator + subsub = sub.column() + subsub.active = has_manipulator + subsub.prop(view, "show_manipulator_navigate", text="Navigate") + del subsub + sub = split.column() + sub.active = has_manipulator + sub.prop(view, "show_manipulator_context", text="Active Object") + sub.prop(view, "show_manipulator_tool", text="Active Tools") + + col.separator() + + split = col.split() + sub = split.column() sub.prop(overlay, "show_text", text="Text") sub.prop(overlay, "show_cursor", text="3D Cursor") sub.prop(overlay, "show_outline_selected") diff --git a/source/blender/blenloader/intern/versioning_defaults.c b/source/blender/blenloader/intern/versioning_defaults.c index d43000e859e..bd7334516ca 100644 --- a/source/blender/blenloader/intern/versioning_defaults.c +++ b/source/blender/blenloader/intern/versioning_defaults.c @@ -71,7 +71,6 @@ void BLO_update_defaults_userpref_blend(void) /* Defaults from T54943 (phase 1). */ U.flag &= ~USER_TOOLTIPS_PYTHON; U.uiflag |= USER_AUTOPERSP; - U.manipulator_flag |= USER_MANIPULATOR_DRAW_NAVIGATE; U.uiflag2 |= USER_REGION_OVERLAP; U.versions = 1; diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index 30f7742fd35..be067b0464d 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -1440,7 +1440,7 @@ void DRW_draw_render_loop_ex( if (DST.draw_ctx.evil_C) { /* needed so manipulator isn't obscured */ if (((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) && - ((v3d->twflag & V3D_MANIPULATOR_DRAW) != 0)) + ((v3d->mpr_flag & V3D_MANIPULATOR_HIDE) == 0)) { glDisable(GL_DEPTH_TEST); DRW_draw_manipulator_3d(); diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index aa71c31c541..c279c949e62 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -1383,7 +1383,7 @@ void init_userdef_do_versions(Main *bmain) if (U.rvisize == 0) { U.rvisize = 15; U.rvibright = 8; - U.uiflag |= USER_SHOW_ROTVIEWICON; + U.uiflag |= USER_SHOW_MANIPULATOR_AXIS; } } diff --git a/source/blender/editors/manipulator_library/manipulator_draw_utils.c b/source/blender/editors/manipulator_library/manipulator_draw_utils.c index a0b226b7502..80181c57115 100644 --- a/source/blender/editors/manipulator_library/manipulator_draw_utils.c +++ b/source/blender/editors/manipulator_library/manipulator_draw_utils.c @@ -59,12 +59,11 @@ /** * Main draw call for ManipulatorGeomInfo data */ -void wm_manipulator_geometryinfo_draw(const ManipulatorGeomInfo *info, const bool select, const float color[4]) +void wm_manipulator_geometryinfo_draw(const ManipulatorGeomInfo *info, const bool UNUSED(select), const float color[4]) { /* TODO store the Batches inside the ManipulatorGeomInfo and updated it when geom changes * So we don't need to re-created and discard it every time */ - const bool use_lighting = true || (!select && ((U.manipulator_flag & USER_MANIPULATOR_SHADED) != 0)); Gwn_VertBuf *vbo; Gwn_IndexBuf *el; Gwn_Batch *batch; @@ -72,11 +71,6 @@ void wm_manipulator_geometryinfo_draw(const ManipulatorGeomInfo *info, const boo Gwn_VertFormat format = {0}; uint pos_id = GWN_vertformat_attr_add(&format, "pos", GWN_COMP_F32, 3, GWN_FETCH_FLOAT); - uint nor_id; - - if (use_lighting) { - nor_id = GWN_vertformat_attr_add(&format, "nor", GWN_COMP_I16, 3, GWN_FETCH_INT_TO_FLOAT_UNIT); - } /* Elements */ GWN_indexbuf_init(&elb, GWN_PRIM_TRIS, info->ntris, info->nverts); @@ -91,11 +85,6 @@ void wm_manipulator_geometryinfo_draw(const ManipulatorGeomInfo *info, const boo GWN_vertbuf_attr_fill(vbo, pos_id, info->verts); - if (use_lighting) { - /* Normals are expected to be smooth. */ - GWN_vertbuf_attr_fill(vbo, nor_id, info->normals); - } - batch = GWN_batch_create_ex(GWN_PRIM_TRIS, vbo, el, GWN_BATCH_OWNS_VBO | GWN_BATCH_OWNS_INDEX); GWN_batch_program_set_builtin(batch, GPU_SHADER_3D_UNIFORM_COLOR); diff --git a/source/blender/editors/manipulator_library/manipulator_types/arrow3d_manipulator.c b/source/blender/editors/manipulator_library/manipulator_types/arrow3d_manipulator.c index a5bcef7ed5e..0430a12bc99 100644 --- a/source/blender/editors/manipulator_library/manipulator_types/arrow3d_manipulator.c +++ b/source/blender/editors/manipulator_library/manipulator_types/arrow3d_manipulator.c @@ -163,16 +163,10 @@ static void arrow_draw_geom(const ArrowManipulator3D *arrow, const bool select, const float len = 0.25f; const float width = 0.06f; - const bool use_lighting = (!select && ((U.manipulator_flag & USER_MANIPULATOR_SHADED) != 0)); /* translate to line end */ gpuTranslate3f(0.0f, 0.0f, arrow_length); - if (use_lighting) { - immUnbindProgram(); - immBindBuiltinProgram(GPU_SHADER_3D_SMOOTH_COLOR); - } - imm_draw_circle_fill_3d(pos, 0.0, 0.0, width, 8); imm_draw_cylinder_fill_3d(pos, width, 0.0, len, 8, 1); } diff --git a/source/blender/editors/mesh/editmesh_add_manipulator.c b/source/blender/editors/mesh/editmesh_add_manipulator.c index bfeccfe33a4..f1704972e81 100644 --- a/source/blender/editors/mesh/editmesh_add_manipulator.c +++ b/source/blender/editors/mesh/editmesh_add_manipulator.c @@ -379,7 +379,7 @@ static int add_primitive_cube_manipulator_invoke(bContext *C, wmOperator *op, co int ret = add_primitive_cube_manipulator_exec(C, op); if (ret & OPERATOR_FINISHED) { /* Setup manipulators */ - if (v3d && (v3d->twflag & V3D_MANIPULATOR_DRAW)) { + if (v3d && ((v3d->mpr_flag & V3D_MANIPULATOR_HIDE) == 0)) { ARegion *ar = CTX_wm_region(C); wmManipulatorMap *mmap = ar->manipulator_map; wmManipulatorGroupType *wgt = WM_manipulatorgrouptype_find("MESH_WGT_add_bounds", false); diff --git a/source/blender/editors/mesh/editmesh_bevel.c b/source/blender/editors/mesh/editmesh_bevel.c index 6c5133c93c8..2b6f8914a02 100644 --- a/source/blender/editors/mesh/editmesh_bevel.c +++ b/source/blender/editors/mesh/editmesh_bevel.c @@ -95,7 +95,7 @@ typedef struct { /* modal only */ float mcenter[2]; void *draw_handle_pixel; - short twflag; + short mpr_flag; short value_mode; /* Which value does mouse movement and numeric input affect? */ float segments; /* Segments as float so smooth mouse pan works in small increments */ } BevelData; @@ -201,8 +201,8 @@ static bool edbm_bevel_init(bContext *C, wmOperator *op, const bool is_modal) G.moving = G_TRANSFORM_EDIT; if (v3d) { - opdata->twflag = v3d->twflag; - v3d->twflag = 0; + opdata->mpr_flag = v3d->mpr_flag; + v3d->mpr_flag = 0; } } @@ -284,7 +284,7 @@ static void edbm_bevel_exit(bContext *C, wmOperator *op) } ED_region_draw_cb_exit(ar->type, opdata->draw_handle_pixel); if (v3d) { - v3d->twflag = opdata->twflag; + v3d->mpr_flag = opdata->mpr_flag; } G.moving = 0; } diff --git a/source/blender/editors/mesh/editmesh_bisect.c b/source/blender/editors/mesh/editmesh_bisect.c index 568983e47ee..ee8adeb2c52 100644 --- a/source/blender/editors/mesh/editmesh_bisect.c +++ b/source/blender/editors/mesh/editmesh_bisect.c @@ -70,7 +70,7 @@ typedef struct { /* modal only */ BMBackup mesh_backup; bool is_first; - short twflag; + short mpr_flag; } BisectData; static bool mesh_bisect_interactive_calc( @@ -156,8 +156,8 @@ static int mesh_bisect_invoke(bContext *C, wmOperator *op, const wmEvent *event) /* misc other vars */ G.moving = G_TRANSFORM_EDIT; - opdata->twflag = v3d->twflag; - v3d->twflag = 0; + opdata->mpr_flag = v3d->mpr_flag; + v3d->mpr_flag = 0; /* initialize modal callout */ ED_workspace_status_text(C, IFACE_("LMB: Click and drag to draw cut line")); @@ -169,7 +169,7 @@ static void edbm_bisect_exit(bContext *C, BisectData *opdata) { View3D *v3d = CTX_wm_view3d(C); EDBM_redo_state_free(&opdata->mesh_backup, NULL, false); - v3d->twflag = opdata->twflag; + v3d->mpr_flag = opdata->mpr_flag; G.moving = 0; } @@ -199,7 +199,7 @@ static int mesh_bisect_modal(bContext *C, wmOperator *op, const wmEvent *event) /* Setup manipula @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs