63 area->
v1 = bottom_left;
66 area->
v4 = bottom_right;
104 if (area ==
nullptr) {
235 se->v1 = se->v1->
newv;
236 se->v2 = se->v2->
newv;
242 area->
v1 = area->v1->
newv;
243 area->v2 = area->v2->
newv;
244 area->v3 = area->v3->
newv;
245 area->v4 = area->v4->
newv;
254 from_area = from_area->
next;
272 if (sa_a ==
nullptr || sa_b ==
nullptr || sa_a == sa_b) {
276 short left_a = sa_a->
v1->
vec.
x;
277 short right_a = sa_a->
v3->
vec.
x;
278 short top_a = sa_a->
v3->
vec.
y;
279 short bottom_a = sa_a->
v1->
vec.
y;
281 short left_b = sa_b->
v1->
vec.
x;
282 short right_b = sa_b->
v3->
vec.
x;
283 short top_b = sa_b->
v3->
vec.
y;
284 short bottom_b = sa_b->
v1->
vec.
y;
287 short overlapx = std::min(right_a, right_b) - std::max(left_a, left_b);
288 short overlapy = std::min(top_a, top_b) - std::max(bottom_a, bottom_b);
294 if (top_a == bottom_b && overlapx >= minx) {
297 if (bottom_a == top_b && overlapx >= minx) {
300 if (left_a == right_b && overlapy >= miny) {
303 if (right_a == left_b && overlapy >= miny) {
313 if (sa_a ==
nullptr || sa_b ==
nullptr) {
314 *r_offset1 = INT_MAX;
315 *r_offset2 = INT_MAX;
335 *r_offset1 = INT_MAX;
336 *r_offset2 = INT_MAX;
348 if (v1->vec.x == from_x) {
362 if (v1->vec.y == from_y) {
380 if ((
abs(offset1) >= tolerance) || (
abs(offset2) >= tolerance)) {
387 const short xmin = std::min(sa1->
v1->
vec.
x, sa2->
v1->
vec.
x);
388 const short xmax = std::max(sa1->
v3->
vec.
x, sa2->
v3->
vec.
x);
390 if (
ELEM(area, sa1, sa2)) {
393 if (area->v3->vec.x - area->v1->vec.x < tolerance &&
394 (area->v1->vec.x == xmin || area->v3->vec.x == xmax))
402 const short ymin = std::min(sa1->
v1->
vec.
y, sa2->
v1->
vec.
y);
403 const short ymax = std::max(sa1->
v3->
vec.
y, sa2->
v3->
vec.
y);
405 if (
ELEM(area, sa1, sa2)) {
408 if (area->v3->vec.y - area->v1->vec.y < tolerance &&
409 (area->v1->vec.y == ymin || area->v3->vec.y == ymax))
514 float fac =
abs(
size) /
float(vertical ? ((*area)->v3->vec.x - (*area)->v1->vec.x) :
515 ((*area)->v3->vec.y - (*area)->v1->vec.y));
516 fac = (reverse == vertical) ? 1.0f - fac : fac;
521 if (((fac > 0.5f) == vertical) != reverse) {
552 if (close_all_remainders || offset1 < 0 || offset2 > 0) {
574 if (area ==
nullptr) {
579 float best_alignment = 0.0f;
587 const int area_length = vertical ? (area->
v3->
vec.
x - area->
v1->
vec.
x) :
589 const int ar_length = vertical ? (neighbor->v3->vec.x - neighbor->v1->vec.x) :
590 (neighbor->v3->vec.y - neighbor->v1->vec.y);
592 float alignment = std::min(area_length, ar_length) /
float(std::max(area_length, ar_length));
593 if (alignment > best_alignment) {
594 best_alignment = alignment;
703 bool any_changed =
false;
708 const int old_region_flag = region->flag;
716 else if (region->type && region->type->on_poll_success) {
717 region->type->on_poll_success(
C, region);
720 if (old_region_flag != region->flag) {
744 const bool force_full_refresh)
751 if (do_refresh || force_full_refresh) {
765 if (!force_full_refresh && !do_refresh) {
792 printf(
"%s: set screen\n", __func__);
815 if (win->eventstate) {
830 const bool force_full_refresh =
false;
1025 if (screen ==
nullptr) {
1067 bool do_draw =
false;
1071 if (region == region_prev && area_iter->
type && area_iter->type->deactivate) {
1072 area_iter->type->deactivate(area_iter);
1075 if (region == region_prev && region != screen->
active_region) {
1099 const int mval[2] = {-1, -1};
1130 if (win && screen && area) {
1164 return screen_addarea_ex(area_map, bottom_left, top_left, top_right, bottom_right, space_type);
1184 const short height_cur,
1185 const short height_min,
1186 const short height_max)
1195 if (area_iter->spacetype == space_type) {
1233 BLI_rcti_init(&rect, 0, win_size[0] - 1, 0, win_size[1] - 1);
1243 const short size_min = 1;
1248 BLI_rcti_init(&rect, 0, win_size[0] - 1, 0, win_size[1] - 1);
1264 if (area->global->cur_fixed_height == area->global->size_min) {
1276 if ((win->
parent !=
nullptr) || screen->
temp) {
1297 if (screen_old != screen_new) {
1348 bmain, workspace, layout, layout, win);
1353 if (screen_old != screen_new) {
1401 const bool refresh_toolsystem)
1419 if (view_layer_old) {
1440 if (refresh_toolsystem) {
1451 if (!area || area->
full ==
nullptr) {
1588 region->flagfullscreen = region->flag;
1590 if (
ELEM(region->regiontype,
1607 toggle_area->
full = oldscreen;
1609 newa->
full = oldscreen;
1632 if (region->regiontimer) {
1634 region->regiontimer =
nullptr;
1643 if (area && area->
full) {
1646 screen = area->
full;
1659 if (old->full && !fullsa) {
1664 old->
full =
nullptr;
1667 area->
full =
nullptr;
1676 region->
flag = region->flagfullscreen;
1704 if (!toggle_area || toggle_area->
global) {
1730 const rcti *rect_unscaled,
1737 switch (display_type) {
1756 if (ctx_area !=
nullptr && ctx_area->
full) {
1819 char spacetype = -1;
1840 ARegion *region_top_left =
nullptr;
1847 if (region->winrct.xmin - region->winrct.ymin <
min) {
1848 region_top_left = region;
1849 min = region->winrct.xmin - region->winrct.ymin;
1856 return region_top_left;
1879#ifdef DURIAN_CAMERA_SWITCH
1880 void *
camera = BKE_scene_camera_switch_find(scene);
1902 switch (area->spacetype) {
1906 if (!is_multiview) {
1910 v3d =
static_cast<View3D *
>(area->spacedata.first);
1928 sima =
static_cast<SpaceImage *
>(area->spacedata.first);
1939 if (!is_multiview) {
1943 snode =
static_cast<SpaceNode *
>(area->spacedata.first);
1952 if (!is_multiview) {
1956 sseq =
static_cast<SpaceSeq *
>(area->spacedata.first);
1992 const bool only_visible)
1996 if (area->spacedata.first == sl) {
WorkSpace * CTX_wm_workspace(const bContext *C)
bScreen * CTX_wm_screen(const bContext *C)
ScrArea * CTX_wm_area(const bContext *C)
wmWindow * CTX_wm_window(const bContext *C)
Depsgraph * CTX_data_depsgraph_pointer(const bContext *C)
void CTX_data_scene_set(bContext *C, Scene *scene)
Scene * CTX_data_scene(const bContext *C)
void CTX_wm_window_set(bContext *C, wmWindow *win)
Main * CTX_data_main(const bContext *C)
void CTX_wm_area_set(bContext *C, ScrArea *area)
void CTX_wm_region_set(bContext *C, ARegion *region)
ARegion * CTX_wm_region(const bContext *C)
wmWindowManager * CTX_wm_manager(const bContext *C)
void BKE_icon_changed(int icon_id)
bool BKE_image_is_stereo(const Image *ima)
void BKE_view_layer_synced_ensure(const Scene *scene, ViewLayer *view_layer)
Object * BKE_view_layer_camera_find(const Scene *scene, ViewLayer *view_layer)
Object * BKE_view_layer_active_object_get(const ViewLayer *view_layer)
Base * BKE_view_layer_base_find(ViewLayer *view_layer, Object *ob)
void * BKE_libblock_alloc(Main *bmain, short type, const char *name, int flag) ATTR_WARN_UNUSED_RESULT
void BKE_scene_graph_update_for_newframe(Depsgraph *depsgraph)
void BKE_screen_remove_unused_scredges(bScreen *screen)
void BKE_screen_remove_double_scrverts(bScreen *screen)
void BKE_screen_sort_scrvert(ScrVert **v1, ScrVert **v2)
void BKE_screen_area_free(ScrArea *area)
void BKE_screen_area_map_free(ScrAreaMap *area_map) ATTR_NONNULL()
SpaceType * BKE_spacetype_from_id(int spaceid)
void BKE_screen_header_alignment_reset(bScreen *screen)
void BKE_area_region_free(SpaceType *st, ARegion *region)
void BKE_screen_view3d_scene_sync(bScreen *screen, Scene *scene)
void BKE_screen_remove_double_scredges(bScreen *screen)
void BKE_screen_view3d_sync(View3D *v3d, Scene *scene)
void BKE_screen_free_data(bScreen *screen)
void BKE_sound_stop_scene(struct Scene *scene)
WorkSpaceLayout * BKE_workspace_layout_find(const WorkSpace *workspace, const bScreen *screen) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
bScreen * BKE_workspace_layout_screen_get(const WorkSpaceLayout *layout) GETTER_ATTRS
void BKE_workspace_layout_remove(Main *bmain, WorkSpace *workspace, WorkSpaceLayout *layout) ATTR_NONNULL()
bScreen * BKE_workspace_active_screen_get(const WorkSpaceInstanceHook *hook) GETTER_ATTRS
WorkSpace * BKE_workspace_active_get(WorkSpaceInstanceHook *hook) GETTER_ATTRS
void BKE_workspace_active_set(WorkSpaceInstanceHook *hook, WorkSpace *workspace) SETTER_ATTRS
#define BLI_assert_unreachable()
void BLI_addhead(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
#define LISTBASE_FOREACH(type, var, list)
void BLI_freelinkN(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void void void void void void BLI_duplicatelist(struct ListBase *dst, const struct ListBase *src) ATTR_NONNULL(1
BLI_INLINE void BLI_listbase_clear(struct ListBase *lb)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
int BLI_findindex(const struct ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void BLI_rcti_init(struct rcti *rect, int xmin, int xmax, int ymin, int ymax)
#define SNPRINTF(dst, format,...)
#define UNUSED_VARS_NDEBUG(...)
void DEG_id_tag_update(ID *id, unsigned int flags)
void DEG_time_tag_update(Main *bmain)
Scene * DEG_get_input_scene(const Depsgraph *graph)
ID * DEG_get_evaluated_id(const Depsgraph *depsgraph, ID *id)
Object is a sort of wrapper for general info.
#define AREAMAP_FROM_SCREEN(screen)
@ AREA_FLAG_STACKED_FULLSCREEN
@ RGN_TYPE_ASSET_SHELF_HEADER
@ GLOBAL_AREA_ALIGN_BOTTOM
@ SCREEN_COLLAPSE_STATUSBAR
@ SEQ_VIEW_SEQUENCE_PREVIEW
@ SPACE_FLAG_TYPE_WAS_ACTIVE
@ SPACE_FLAG_TYPE_TEMPORARY
@ USER_TEMP_SPACE_DISPLAY_FULLSCREEN
@ USER_TEMP_SPACE_DISPLAY_WINDOW
void ED_clip_update_frame(const Main *mainp, int cfra)
bool ED_node_is_compositor(const SpaceNode *snode)
void ED_area_tag_redraw(ScrArea *area)
void ED_area_newspace(bContext *C, ScrArea *area, int type, bool skip_region_exit)
WorkSpaceLayout * ED_workspace_layout_add(Main *bmain, WorkSpace *workspace, wmWindow *win, const char *name) ATTR_NONNULL()
void ED_region_cursor_set(wmWindow *win, ScrArea *area, ARegion *region)
#define ED_screen_verts_iter(win, screen, vert_name)
void ED_area_and_region_types_init(ScrArea *area)
bool ED_region_contains_xy(const ARegion *region, const int event_xy[2])
#define ED_screen_areas_iter(win, screen, area_name)
void ED_area_status_text(ScrArea *area, const char *str)
void ED_region_tag_redraw_no_rebuild(ARegion *region)
WorkSpaceLayout * ED_workspace_screen_change_ensure_unused_layout(Main *bmain, WorkSpace *workspace, WorkSpaceLayout *layout_new, const WorkSpaceLayout *layout_fallback_base, wmWindow *win) ATTR_NONNULL()
void ED_region_visibility_change_update(bContext *C, ScrArea *area, ARegion *region)
bScreen * ED_screen_animation_playing(const wmWindowManager *wm)
void ED_area_tag_refresh(ScrArea *area)
AZone * ED_area_azones_update(ScrArea *area, const int mouse_xy[2])
void ED_workspace_status_text(bContext *C, const char *str)
void ED_area_prevspace(bContext *C, ScrArea *area)
void ED_area_init(wmWindowManager *wm, wmWindow *win, ScrArea *area)
static void split(const char *text, const char *seps, char ***str, int *count)
Read Guarded memory(de)allocation.
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block Image Sample an image file as a texture Gabor Generate Gabor noise Gradient Generate interpolated color and intensity values based on the input vector Magic Generate a psychedelic color texture Voronoi Generate Worley noise based on the distance to random points Typically used to generate textures such as or biological cells Brick Generate a procedural texture producing bricks Texture Retrieve multiple types of texture coordinates nTypically used as inputs for texture nodes Vector Convert a or normal between camera
void UI_blocklist_free(const bContext *C, ARegion *region)
void UI_screen_free_active_but_highlight(const bContext *C, bScreen *screen)
@ WIN_ALIGN_LOCATION_CENTER
void ED_area_data_copy(ScrArea *area_dst, ScrArea *area_src, const bool do_free)
void ED_area_data_swap(ScrArea *area_dst, ScrArea *area_src)
BPy_StructRNA * depsgraph
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
draw_view in_light_buf[] float
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
OrientationBounds merge(const OrientationBounds &cone_a, const OrientationBounds &cone_b)
void MEM_freeN(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
VecBase< int32_t, 2 > int2
int RNA_enum_from_value(const EnumPropertyItem *item, const int value)
const EnumPropertyItem rna_enum_space_type_items[]
int ed_screen_context(const bContext *C, const char *member, bContextDataResult *result)
int ED_area_icon(const ScrArea *area)
void ED_screen_global_areas_sync(wmWindow *win)
static bool screen_areas_can_align(bScreen *screen, ScrArea *sa1, ScrArea *sa2, eScreenDir dir)
static ScrArea * screen_addarea_ex(ScrAreaMap *area_map, ScrVert *bottom_left, ScrVert *top_left, ScrVert *top_right, ScrVert *bottom_right, const eSpace_Type space_type)
int ED_screen_area_active(const bContext *C)
bool ED_screen_stereo3d_required(const bScreen *screen, const Scene *scene)
wmWindow * ED_screen_window_find(const bScreen *screen, const wmWindowManager *wm)
static void screen_global_area_refresh(wmWindow *win, bScreen *screen, const eSpace_Type space_type, GlobalAreaAlign align, const rcti *rect, const short height_cur, const short height_min, const short height_max)
static void screen_set_3dview_camera(Scene *scene, ViewLayer *view_layer, ScrArea *area, View3D *v3d)
Scene * ED_screen_scene_find(const bScreen *screen, const wmWindowManager *wm)
static void screen_area_set_geometry_rect(ScrArea *area, const rcti *rect)
void screen_change_prepare(bScreen *screen_old, bScreen *screen_new, Main *bmain, bContext *C, wmWindow *win)
static void screen_refresh(bContext *C, wmWindowManager *wm, wmWindow *win, const bool force_full_refresh)
static ScrArea * screen_area_create_with_geometry(ScrAreaMap *area_map, const rcti *rect, eSpace_Type space_type)
void ED_screen_ensure_updated(bContext *C, wmWindowManager *wm, wmWindow *win)
void screen_new_activate_prepare(const wmWindow *win, bScreen *screen_new)
ScrArea * ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *area, const short state)
ScrArea * ED_screen_area_find_with_spacedata(const bScreen *screen, const SpaceLink *sl, const bool only_visible)
void area_getoffsets(ScrArea *sa_a, ScrArea *sa_b, const eScreenDir dir, int *r_offset1, int *r_offset2)
static void region_cursor_set(wmWindow *win, bool swin_changed)
void ED_screen_refresh(bContext *C, wmWindowManager *wm, wmWindow *win)
void ED_screen_full_restore(bContext *C, ScrArea *area)
static void screen_verts_halign(const wmWindow *win, const bScreen *screen, const short from_x, const short to_x)
static bool region_poll(const bContext *C, const bScreen *screen, const ScrArea *area, const ARegion *region)
eScreenDir area_getorientation(ScrArea *sa_a, ScrArea *sa_b)
ScrArea * ED_screen_full_newspace(bContext *C, ScrArea *area, int type)
static void screen_global_statusbar_area_refresh(wmWindow *win, bScreen *screen)
int screen_area_join(bContext *C, bScreen *screen, ScrArea *sa1, ScrArea *sa2)
void ED_screen_do_listen(bContext *C, const wmNotifier *note)
void ED_screens_init(bContext *C, Main *bmain, wmWindowManager *wm)
static bool screen_area_join_ex(bContext *C, bScreen *screen, ScrArea *sa1, ScrArea *sa2, bool close_all_remainders)
static void screen_delarea(bContext *C, bScreen *screen, ScrArea *area)
void ED_screen_global_areas_refresh(wmWindow *win)
bool ED_screen_change(bContext *C, bScreen *screen)
Change the active screen.
bScreen * ED_screen_state_maximized_create(bContext *C)
void ED_screen_animation_timer(bContext *C, int redraws, int sync, int enable)
void ED_screen_restore_temp_type(bContext *C, ScrArea *area)
ScrArea * area_split(const wmWindow *win, bScreen *screen, ScrArea *area, const eScreenAxis dir_axis, const float fac, const bool merge)
static bool screen_area_join_aligned(bContext *C, bScreen *screen, ScrArea *sa1, ScrArea *sa2)
void screen_change_update(bContext *C, wmWindow *win, bScreen *screen)
static void screen_verts_valign(const wmWindow *win, const bScreen *screen, const short from_y, const short to_y)
void ED_screen_exit(bContext *C, wmWindow *window, bScreen *screen)
bool screen_area_close(bContext *C, bScreen *screen, ScrArea *area)
void ED_area_exit(bContext *C, ScrArea *area)
static ScrArea * screen_addarea(bScreen *screen, ScrVert *left_bottom, ScrVert *left_top, ScrVert *right_top, ScrVert *right_bottom, const eSpace_Type space_type)
static void screen_global_topbar_area_refresh(wmWindow *win, bScreen *screen)
ScrArea * ED_screen_temp_space_open(bContext *C, const char *title, const rcti *rect_unscaled, eSpace_Type space_type, int display_type, bool dialog)
static bScreen * screen_state_to_nonnormal(bContext *C, wmWindow *win, ScrArea *toggle_area, int state)
void ED_screen_animation_timer_update(bScreen *screen, int redraws)
void ED_screen_set_active_region(bContext *C, wmWindow *win, const int xy[2])
blender::StringRefNull ED_area_name(const ScrArea *area)
static bool screen_areas_align(bContext *C, bScreen *screen, ScrArea *sa1, ScrArea *sa2, const eScreenDir dir)
void ED_update_for_newframe(Main *bmain, Depsgraph *depsgraph)
static void screen_cursor_set(wmWindow *win, const int xy[2])
void screen_data_copy(bScreen *to, bScreen *from)
static bool screen_regions_poll(bContext *C, wmWindow *win, const bScreen *screen)
void ED_screen_scene_change(bContext *C, wmWindow *win, Scene *scene, const bool refresh_toolsystem)
static ScrArea * screen_area_trim(bContext *C, bScreen *screen, ScrArea **area, int size, eScreenDir dir, bool reverse)
static ARegion * time_top_left_3dwindow(bScreen *screen)
void ED_region_remove(bContext *C, ScrArea *area, ARegion *region)
static int screen_global_header_size()
bScreen * screen_add(Main *bmain, const char *name, const rcti *rect)
void ED_region_exit(bContext *C, ARegion *region)
static void region_cursor_set_ex(wmWindow *win, ScrArea *area, ARegion *region, bool swin_changed)
void ED_screen_full_prevspace(bContext *C, ScrArea *area)
Scene * ED_screen_scene_find_with_window(const bScreen *screen, const wmWindowManager *wm, wmWindow **r_window)
void screen_area_spacelink_add(const Scene *scene, ScrArea *area, eSpace_Type space_type)
ScrVert * screen_geom_vertex_add(bScreen *screen, short x, short y)
ScrEdge * screen_geom_edge_add_ex(ScrAreaMap *area_map, ScrVert *v1, ScrVert *v2)
ScrVert * screen_geom_vertex_add_ex(ScrAreaMap *area_map, short x, short y)
ScrEdge * screen_geom_find_active_scredge(const wmWindow *win, const bScreen *screen, const int mx, const int my)
ScrEdge * screen_geom_edge_add(bScreen *screen, ScrVert *v1, ScrVert *v2)
bool screen_geom_edge_is_horizontal(ScrEdge *se)
void screen_geom_vertices_scale(const wmWindow *win, bScreen *screen)
Main screen-layout calculation function.
short screen_geom_find_area_split_point(const ScrArea *area, const rcti *window_rect, const eScreenAxis dir_axis, float fac)
#define SCREEN_DIR_IS_HORIZONTAL(dir)
AZone * ED_area_actionzone_find_xy(ScrArea *area, const int xy[2])
#define SCREEN_DIR_IS_VERTICAL(dir)
#define AREAJOINTOLERANCEX
#define AREAJOINTOLERANCEY
bool(* poll)(const RegionPollParams *params)
void(* exit)(wmWindowManager *wm, ARegion *region)
struct wmTimer * regiontimer
struct wmGizmoMap * gizmo_map
struct ARegionType * type
ScrGlobalAreaData * global
SpaceLink *(* create)(const ScrArea *area, const Scene *scene)
int(* space_icon_get)(const ScrArea *area)
void(* exit)(wmWindowManager *wm, ScrArea *area)
blender::StringRefNull(* space_name_get)(const ScrArea *area)
struct wmTimer * animtimer
struct ARegion * active_region
struct wmMsgBus * message_bus
struct wmEvent * eventstate
struct WorkSpaceInstanceHook * workspace_hook
ccl_device_inline int abs(int x)
void WM_cursor_set(wmWindow *win, int curs)
void WM_draw_region_free(ARegion *region)
bool WM_cursor_test_motion_and_update(const int mval[2])
void WM_window_status_area_tag_redraw(wmWindow *win)
void WM_event_remove_area_handler(ListBase *handlers, void *area)
void WM_report(eReportType type, const char *message)
void WM_event_modal_handler_region_replace(wmWindow *win, const ARegion *old_region, ARegion *new_region)
void WM_event_modal_handler_area_replace(wmWindow *win, const ScrArea *old_area, ScrArea *new_area)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
void WM_event_ui_handler_region_popup_replace(wmWindow *win, const ARegion *old_region, ARegion *new_region)
void WM_event_remove_handlers(bContext *C, ListBase *handlers)
void WM_event_add_mousemove(wmWindow *win)
bool WM_gizmo_highlight_set(wmGizmoMap *gzmap, wmGizmo *gz)
void WM_msgbus_clear_by_owner(wmMsgBus *mbus, void *owner)
blender::int2 WM_window_native_pixel_size(const wmWindow *win)
void WM_window_ensure_active_view_layer(wmWindow *win)
WorkSpaceLayout * WM_window_get_active_layout(const wmWindow *win)
void WM_event_timer_sleep(wmWindowManager *wm, wmWindow *, wmTimer *timer, bool do_sleep)
void WM_window_set_active_screen(wmWindow *win, WorkSpace *workspace, bScreen *screen)
void WM_window_set_dpi(const wmWindow *win)
wmWindow * WM_window_open(bContext *C, const char *title, const rcti *rect_unscaled, int space_type, bool toplevel, bool dialog, bool temp, eWindowAlignment alignment, void(*area_setup_fn)(bScreen *screen, ScrArea *area, void *user_data), void *area_setup_user_data)
bool WM_window_is_temp_screen(const wmWindow *win)
void WM_window_rect_calc(const wmWindow *win, rcti *r_rect)
ViewLayer * WM_window_get_active_view_layer(const wmWindow *win)
Scene * WM_window_get_active_scene(const wmWindow *win)
void WM_event_timer_remove(wmWindowManager *wm, wmWindow *, wmTimer *timer)
WorkSpace * WM_window_get_active_workspace(const wmWindow *win)
wmTimer * WM_event_timer_add(wmWindowManager *wm, wmWindow *win, const int event_type, const double time_step)
bScreen * WM_window_get_active_screen(const wmWindow *win)