diff options
author | Julian Eisel <eiseljulian@gmail.com> | 2020-02-14 17:36:12 +0300 |
---|---|---|
committer | Julian Eisel <eiseljulian@gmail.com> | 2020-02-14 17:59:30 +0300 |
commit | c4b9cb0af0ae50c5bdb4246b30aceadb12ec97d9 (patch) | |
tree | 362f9b837c596cff681a145695999ac6a5e556d4 /source/blender/windowmanager | |
parent | 8645b73cd8c0c9768b1de332bfeeac3a80388e28 (diff) |
UI: Allow gizmo-only redraw tagging
NOTE: This change shouldn't have any visible effect. It's just the
first (easiest) step towards decoupling gizmo redraws from viewport
redraws.
We currently redraw the entire region whenever a gizmo needs redrawing,
which would be nice to avoid in the future, see T73198. The first step
towards this would be having a separate tag for them, which is what
this patch implements.
The term "editor-overlays" was chosen because for the forseeable future,
we'll also have to redraw non-gizmo overlays in-between drawing 3D and
2D gizmos. Namely annotations.
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D6838
Diffstat (limited to 'source/blender/windowmanager')
4 files changed, 10 insertions, 9 deletions
diff --git a/source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c b/source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c index ab38b850ada..5ef77090ea0 100644 --- a/source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c +++ b/source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c @@ -310,7 +310,7 @@ void WM_gizmo_group_remove_by_tool(bContext *C, if (gzgroup->type == gzgt) { BLI_assert(gzgroup->parent_gzmap == gzmap); wm_gizmogroup_free(C, gzgroup); - ED_region_tag_redraw(ar); + ED_region_tag_redraw_editor_overlays(ar); } } } @@ -391,7 +391,7 @@ static int gizmo_select_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSE } if (redraw) { - ED_region_tag_redraw(ar); + ED_region_tag_redraw_editor_overlays(ar); } return OPERATOR_FINISHED; @@ -941,7 +941,7 @@ wmGizmoGroup *WM_gizmomaptype_group_init_runtime_with_region(wmGizmoMapType *gzm wm_gizmomap_highlight_set(gzmap, NULL, NULL, 0); - ED_region_tag_redraw(ar); + ED_region_tag_redraw_editor_overlays(ar); return gzgroup; } @@ -973,7 +973,7 @@ void WM_gizmomaptype_group_unlink(bContext *C, if (gzgroup->type == gzgt) { BLI_assert(gzgroup->parent_gzmap == gzmap); wm_gizmogroup_free(C, gzgroup); - ED_region_tag_redraw(ar); + ED_region_tag_redraw_editor_overlays(ar); } } } diff --git a/source/blender/windowmanager/gizmo/intern/wm_gizmo_map.c b/source/blender/windowmanager/gizmo/intern/wm_gizmo_map.c index 383ca806d35..98669afdd08 100644 --- a/source/blender/windowmanager/gizmo/intern/wm_gizmo_map.c +++ b/source/blender/windowmanager/gizmo/intern/wm_gizmo_map.c @@ -1047,7 +1047,7 @@ bool wm_gizmomap_highlight_set(wmGizmoMap *gzmap, const bContext *C, wmGizmo *gz /* tag the region for redraw */ if (C) { ARegion *ar = CTX_wm_region(C); - ED_region_tag_redraw(ar); + ED_region_tag_redraw_editor_overlays(ar); } return true; @@ -1135,7 +1135,7 @@ void wm_gizmomap_modal_set( WM_cursor_warp(win, UNPACK2(gzmap->gzmap_context.event_xy)); } } - ED_region_tag_redraw(CTX_wm_region(C)); + ED_region_tag_redraw_editor_overlays(CTX_wm_region(C)); WM_event_add_mousemove(C); } @@ -1385,7 +1385,7 @@ void WM_gizmoconfig_update(struct Main *bmain) gzgroup_next = gzgroup->next; if (gzgroup->tag_remove) { wm_gizmogroup_free(NULL, gzgroup); - ED_region_tag_redraw(ar); + ED_region_tag_redraw_editor_overlays(ar); } } } diff --git a/source/blender/windowmanager/gizmo/intern/wm_gizmo_target_props.c b/source/blender/windowmanager/gizmo/intern/wm_gizmo_target_props.c index 8acdf2de86f..87e23c0f03e 100644 --- a/source/blender/windowmanager/gizmo/intern/wm_gizmo_target_props.c +++ b/source/blender/windowmanager/gizmo/intern/wm_gizmo_target_props.c @@ -318,7 +318,8 @@ void WM_gizmo_do_msg_notify_tag_refresh(bContext *UNUSED(C), ARegion *ar = msg_val->owner; wmGizmoMap *gzmap = msg_val->user_data; - ED_region_tag_redraw(ar); + ED_region_tag_redraw(ar); /* Could possibly avoid a full redraw and only tag for editor overlays + redraw in some cases, see ED_region_tag_redraw_editor_overlays(). */ WM_gizmomap_tag_refresh(gzmap); } diff --git a/source/blender/windowmanager/gizmo/intern/wm_gizmo_type.c b/source/blender/windowmanager/gizmo/intern/wm_gizmo_type.c index fd8a01ca575..87d475a4da1 100644 --- a/source/blender/windowmanager/gizmo/intern/wm_gizmo_type.c +++ b/source/blender/windowmanager/gizmo/intern/wm_gizmo_type.c @@ -148,7 +148,7 @@ static void gizmotype_unlink(bContext *C, Main *bmain, wmGizmoType *gzt) BLI_assert(gzgroup->parent_gzmap == gzmap); if (gz->type == gzt) { WM_gizmo_unlink(&gzgroup->gizmos, gzgroup->parent_gzmap, gz, C); - ED_region_tag_redraw(ar); + ED_region_tag_redraw_editor_overlays(ar); } } } |