Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/screen/area.c
| Show First 20 Lines • Show All 623 Lines • ▼ Show 20 Lines | |||||
| * ********************************** */ | * ********************************** */ | ||||
| void ED_region_tag_redraw(ARegion *ar) | void ED_region_tag_redraw(ARegion *ar) | ||||
| { | { | ||||
| /* don't tag redraw while drawing, it shouldn't happen normally | /* don't tag redraw while drawing, it shouldn't happen normally | ||||
| * but python scripts can cause this to happen indirectly */ | * but python scripts can cause this to happen indirectly */ | ||||
| if (ar && !(ar->do_draw & RGN_DRAWING)) { | if (ar && !(ar->do_draw & RGN_DRAWING)) { | ||||
| /* zero region means full region redraw */ | /* zero region means full region redraw */ | ||||
| ar->do_draw &= ~(RGN_DRAW_PARTIAL | RGN_DRAW_NO_REBUILD); | ar->do_draw &= ~(RGN_DRAW_PARTIAL | RGN_DRAW_NO_REBUILD | RGN_DRAW_EDITOR_OVERLAYS); | ||||
| ar->do_draw |= RGN_DRAW; | ar->do_draw |= RGN_DRAW; | ||||
| memset(&ar->drawrct, 0, sizeof(ar->drawrct)); | memset(&ar->drawrct, 0, sizeof(ar->drawrct)); | ||||
| } | } | ||||
| } | } | ||||
| void ED_region_tag_redraw_overlay(ARegion *ar) | void ED_region_tag_redraw_overlay(ARegion *ar) | ||||
| { | { | ||||
| if (ar) { | if (ar) { | ||||
| ar->do_draw_overlay = RGN_DRAW; | ar->do_draw_overlay = RGN_DRAW; | ||||
| } | } | ||||
| } | } | ||||
| void ED_region_tag_redraw_no_rebuild(ARegion *ar) | void ED_region_tag_redraw_no_rebuild(ARegion *ar) | ||||
| { | { | ||||
| if (ar && !(ar->do_draw & (RGN_DRAWING | RGN_DRAW))) { | if (ar && !(ar->do_draw & (RGN_DRAWING | RGN_DRAW))) { | ||||
| ar->do_draw &= ~RGN_DRAW_PARTIAL; | ar->do_draw &= ~(RGN_DRAW_PARTIAL | RGN_DRAW_EDITOR_OVERLAYS); | ||||
| ar->do_draw |= RGN_DRAW_NO_REBUILD; | ar->do_draw |= RGN_DRAW_NO_REBUILD; | ||||
| memset(&ar->drawrct, 0, sizeof(ar->drawrct)); | memset(&ar->drawrct, 0, sizeof(ar->drawrct)); | ||||
| } | } | ||||
| } | } | ||||
| void ED_region_tag_refresh_ui(ARegion *ar) | void ED_region_tag_refresh_ui(ARegion *ar) | ||||
| { | { | ||||
| if (ar) { | if (ar) { | ||||
| ar->do_draw |= RGN_REFRESH_UI; | ar->do_draw |= RGN_REFRESH_UI; | ||||
| } | } | ||||
| } | } | ||||
| /** | |||||
| * Tag editor overlays to be redrawn. If in doubt about which parts need to be redrawn (partial | |||||
| * clipping rectangle set), redraw everything. | |||||
| */ | |||||
| void ED_region_tag_redraw_editor_overlays(struct ARegion *ar) | |||||
| { | |||||
| if (ar && !(ar->do_draw & (RGN_DRAWING | RGN_DRAW))) { | |||||
| if (ar->do_draw & RGN_DRAW_PARTIAL) { | |||||
| ED_region_tag_redraw(ar); | |||||
| } | |||||
| else { | |||||
| ar->do_draw |= RGN_DRAW_EDITOR_OVERLAYS; | |||||
| } | |||||
| } | |||||
| } | |||||
| void ED_region_tag_redraw_partial(ARegion *ar, const rcti *rct, bool rebuild) | void ED_region_tag_redraw_partial(ARegion *ar, const rcti *rct, bool rebuild) | ||||
| { | { | ||||
| if (ar && !(ar->do_draw & RGN_DRAWING)) { | if (ar && !(ar->do_draw & RGN_DRAWING)) { | ||||
| if (ar->do_draw & RGN_DRAW_PARTIAL) { | if (ar->do_draw & RGN_DRAW_PARTIAL) { | ||||
| /* Partial redraw already set, expand region. */ | /* Partial redraw already set, expand region. */ | ||||
| BLI_rcti_union(&ar->drawrct, rct); | BLI_rcti_union(&ar->drawrct, rct); | ||||
| if (rebuild) { | if (rebuild) { | ||||
| ar->do_draw &= ~RGN_DRAW_NO_REBUILD; | ar->do_draw &= ~RGN_DRAW_NO_REBUILD; | ||||
| ▲ Show 20 Lines • Show All 2,851 Lines • Show Last 20 Lines | |||||