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:
authorJulian Eisel <eiseljulian@gmail.com>2020-02-14 17:36:12 +0300
committerJulian Eisel <eiseljulian@gmail.com>2020-02-14 17:59:30 +0300
commitc4b9cb0af0ae50c5bdb4246b30aceadb12ec97d9 (patch)
tree362f9b837c596cff681a145695999ac6a5e556d4 /source/blender/windowmanager/gizmo
parent8645b73cd8c0c9768b1de332bfeeac3a80388e28 (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/gizmo')
-rw-r--r--source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c8
-rw-r--r--source/blender/windowmanager/gizmo/intern/wm_gizmo_map.c6
-rw-r--r--source/blender/windowmanager/gizmo/intern/wm_gizmo_target_props.c3
-rw-r--r--source/blender/windowmanager/gizmo/intern/wm_gizmo_type.c2
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);
}
}
}