81 float color[4] = {0.0f, 0.0f, 0.0f, 0.25f};
153 if (list->type && list->type->listener) {
154 list->type->listener(list,
params);
162 if (
params->area->type &&
params->area->type->listener) {
170 if (
area->type &&
area->type->refresh) {
173 area->do_refresh =
false;
184 ICON_FULLSCREEN_EXIT,
205 const float size = 0.2f *
U.widget_unit;
206 const float l = 1.0f;
207 const float s = 0.25f;
208 const float hl =
l / 2.0f;
209 const float points[6][2] = {
210 {0, -hl}, {
l, hl}, {
l - s, hl + s}, {0, s + s - hl}, {s -
l, hl + s}, {-
l, hl}};
211 const float center[2] = {(x1 +
x2) / 2, (
y1 + y2) / 2};
247 for (
int i = 0; i < 6; i++) {
283 const float color[4] = {0.05f, 0.05f, 0.05f, alpha};
287 .xmax = (
float)az->
x2,
289 .ymax = (
float)az->
y2,
333 if (az->alpha > 0.0f) {
369 const float y1 =
pad;
370 const float y2 = region->
winy -
pad;
374 float color[4] = {0.0f, 0.0f, 0.0f, 0.5f};
410 while (region && region->
prev) {
411 region = region->
prev;
413 for (; region; region = region->
next) {
444 mbus, &workspace->
id, workspace,
WorkSpace, tools, &msg_sub_value_region_tag_redraw);
454 const char *panel_category_tool =
"Tool";
457 bool update_region =
false;
458 if (category &&
STREQ(category, panel_category_tool)) {
459 update_region =
true;
465 STREQ(panel->type->category, panel_category_tool)) {
466 update_region =
true;
479 mbus, &workspace->
id, workspace,
WorkSpace, tools, &msg_sub_value_region_tag_redraw);
491 return (
area->winx < 3) || (
area->winy < 3);
562 if (
G.debug_value == 888) {
592 float color[4] = {0.0f, 0.0f, 0.0f, 0.8f};
640 .workspace = workspace,
751 if (region->regiontype == regiontype) {
761 area->do_refresh =
true;
802 if (region->headerstr ==
NULL) {
822 if (workspace ==
NULL) {
868 const float coords[4][4] = {
870 {
area->totrct.xmin -
U.pixelsize,
871 area->totrct.ymin -
U.pixelsize,
876 area->totrct.ymin -
U.pixelsize,
877 area->totrct.xmax +
U.pixelsize,
880 {
area->totrct.xmin -
U.pixelsize,
883 area->totrct.ymax +
U.pixelsize},
887 area->totrct.xmax +
U.pixelsize,
888 area->totrct.ymax +
U.pixelsize},
891 for (
int i = 0; i < 4; i++) {
895 ((coords[i][0] == 0 && coords[i][1] == 0) ||
907 az->
x1 = coords[i][0];
908 az->
y1 = coords[i][1];
909 az->
x2 = coords[i][2];
910 az->
y2 = coords[i][3];
942 #define AZONEPAD_EDGE (0.1f * U.widget_unit)
943 #define AZONEPAD_ICON (0.45f * U.widget_unit)
948 int overlap_padding = (region->
overlap) ? (
int)(0.4f *
U.widget_unit) : 0;
982 float edge_offset = 1.0f;
983 const float tab_size_x = 0.7f *
U.widget_unit;
984 const float tab_size_y = 0.4f *
U.widget_unit;
988 if (azt->edge == az->
edge) {
996 az->
x1 = region->
winrct.
xmax - ((edge_offset + 1.0f) * tab_size_x);
998 az->
x2 = region->
winrct.
xmax - (edge_offset * tab_size_x);
1003 az->
x1 = region->
winrct.
xmax - ((edge_offset + 1.0f) * tab_size_x);
1005 az->
x2 = region->
winrct.
xmax - (edge_offset * tab_size_x);
1010 az->
y1 = region->
winrct.
ymax - ((edge_offset + 1.0f) * tab_size_x);
1012 az->
y2 = region->
winrct.
ymax - (edge_offset * tab_size_x);
1016 az->
y1 = region->
winrct.
ymax - ((edge_offset + 1.0f) * tab_size_x);
1018 az->
y2 = region->
winrct.
ymax - (edge_offset * tab_size_x);
1029 if (is_hidden && is_fullscreen) {
1050 const bool is_fullscreen)
1082 az->region = region;
1083 az->direction = direction;
1090 az->region->v2d.alpha_hor = 0;
1119 const int alignment,
1120 const bool is_fullscreen)
1157 if (is_fullscreen) {
1184 for (region_iter = region->
prev; region_iter; region_iter = region_iter->
prev) {
1195 if (align1 != align) {
1229 for (region_iter = region->
prev; region_iter; region_iter = region_iter->
prev) {
1238 if ((region_iter->
alignment != align) &&
1260 if (
ELEM(regiontype,
1277 rcti *remainder_prev = remainder;
1279 if (region ==
NULL) {
1283 int prev_winx = region->
winx;
1284 int prev_winy = region->
winy;
1358 rcti overlap_remainder_margin = *overlap_remainder;
1378 rcti winrct_test = {
1384 BLI_rcti_isect(&winrct_test, &overlap_remainder_margin, &winrct_test);
1397 region->
winrct = *remainder;
1401 rcti *winrct = (region->
overlap) ? overlap_remainder : remainder;
1413 region->
winrct = *winrct;
1427 rcti *winrct = (region->
overlap) ? overlap_remainder : remainder;
1439 region->
winrct = *winrct;
1454 region->
winrct = *remainder;
1476 region->
winrct = *remainder;
1483 while (region_test) {
1485 region_test = region_test->
next;
1493 printf(
"region quadsplit failed\n");
1505 else if (
quad == 2) {
1509 else if (
quad == 3) {
1533 if (region->
winx > 1) {
1536 if (region->
winy > 1) {
1547 region->
winrct = (region->
overlap) ? *overlap_remainder : *remainder;
1549 switch (alignment) {
1575 remainder = remainder_prev;
1584 *overlap_remainder = *remainder;
1592 if (region->
winx != prev_winx || region->
winy != prev_winy) {
1609 short px = (short)
U.pixelsize;
1611 area->totrct.xmin =
area->v1->vec.x;
1612 area->totrct.xmax =
area->v4->vec.x;
1613 area->totrct.ymin =
area->v1->vec.y;
1614 area->totrct.ymax =
area->v2->vec.y;
1618 area->totrct.xmin += px;
1620 if (
area->totrct.xmax < (window_rect->
xmax - 1)) {
1621 area->totrct.xmax -= px;
1623 if (
area->totrct.ymin > window_rect->
ymin) {
1624 area->totrct.ymin += px;
1626 if (
area->totrct.ymax < (window_rect->
ymax - 1)) {
1627 area->totrct.ymax -= px;
1761 wm->
defaultconf,
"Grease Pencil Stroke Curve Edit Mode", 0, 0);
1765 wm->
defaultconf,
"Grease Pencil Stroke Edit Mode", 0, 0);
1769 wm->
defaultconf,
"Grease Pencil Stroke Paint Mode", 0, 0);
1773 wm->
defaultconf,
"Grease Pencil Stroke Paint (Draw brush)", 0, 0);
1777 wm->
defaultconf,
"Grease Pencil Stroke Paint (Erase)", 0, 0);
1781 wm->
defaultconf,
"Grease Pencil Stroke Paint (Fill)", 0, 0);
1785 wm->
defaultconf,
"Grease Pencil Stroke Paint (Tint)", 0, 0);
1789 wm->
defaultconf,
"Grease Pencil Stroke Sculpt Mode", 0, 0);
1793 wm->
defaultconf,
"Grease Pencil Stroke Vertex Mode", 0, 0);
1797 wm->
defaultconf,
"Grease Pencil Stroke Vertex (Draw)", 0, 0);
1801 wm->
defaultconf,
"Grease Pencil Stroke Vertex (Blur)", 0, 0);
1805 wm->
defaultconf,
"Grease Pencil Stroke Vertex (Average)", 0, 0);
1809 wm->
defaultconf,
"Grease Pencil Stroke Vertex (Smear)", 0, 0);
1813 wm->
defaultconf,
"Grease Pencil Stroke Vertex (Replace)", 0, 0);
1817 wm->
defaultconf,
"Grease Pencil Stroke Sculpt (Smooth)", 0, 0);
1821 wm->
defaultconf,
"Grease Pencil Stroke Sculpt (Thickness)", 0, 0);
1825 wm->
defaultconf,
"Grease Pencil Stroke Sculpt (Strength)", 0, 0);
1829 wm->
defaultconf,
"Grease Pencil Stroke Sculpt (Grab)", 0, 0);
1833 wm->
defaultconf,
"Grease Pencil Stroke Sculpt (Push)", 0, 0);
1837 wm->
defaultconf,
"Grease Pencil Stroke Sculpt (Twist)", 0, 0);
1841 wm->
defaultconf,
"Grease Pencil Stroke Sculpt (Pinch)", 0, 0);
1845 wm->
defaultconf,
"Grease Pencil Stroke Sculpt (Randomize)", 0, 0);
1849 wm->
defaultconf,
"Grease Pencil Stroke Sculpt (Clone)", 0, 0);
1853 wm->
defaultconf,
"Grease Pencil Stroke Weight Mode", 0, 0);
1857 wm->
defaultconf,
"Grease Pencil Stroke Weight (Draw)", 0, 0);
1875 rcti overlap_rect = rect;
1885 if (region->type->init) {
1886 region->type->init(wm, region);
1932 rcti overlap_rect = rect;
1939 if (
area->type->init) {
1950 if (region->visible) {
1954 if (region->type->init) {
1955 region->type->init(wm, region);
1975 area->runtime.is_tool_set =
true;
1998 area->spacetype = space_type;
2008 if (
area->type &&
area->type->exit) {
2013 if (region->type && region->type->exit) {
2014 region->type->exit(wm, region);
2022 if (region->regiontimer) {
2024 region->regiontimer =
NULL;
2069 if (region !=
NULL) {
2108 if (do_fade && region->
overlap) {
2124 const char spacetype = area_dst->
spacetype;
2130 area_dst->
flag = (area_dst->
flag & ~flag_copy) | (area_src->
flag & flag_copy);
2198 const int index = region->regiontype;
2222 if ((tool_header_alignment != -1) &&
2224 ((tool_header_hidden ==
false) ||
2228 (header_hidden && tool_header_hidden))) {
2229 return tool_header_alignment;
2231 if (header_alignment != -1) {
2232 return header_alignment;
2266 const short tool_header_alignment_src =
2272 region_align_info_src, -1);
2275 if (primary_header_alignment_src == -1) {
2280 const short tool_header_alignment_dst =
2287 short header_alignment_sync = -1;
2288 short tool_header_alignment_sync = -1;
2289 short footer_alignment_sync = -1;
2293 if (((header_alignment_src != -1) == (header_alignment_dst != -1)) &&
2294 ((tool_header_alignment_src != -1) == (tool_header_alignment_dst != -1)) &&
2295 (tool_header_hidden_src == tool_header_hidden_dst)) {
2296 if (header_alignment_dst != -1) {
2297 header_alignment_sync = header_alignment_src;
2299 if (tool_header_alignment_dst != -1) {
2300 tool_header_alignment_sync = tool_header_alignment_src;
2306 region_align_info_dst, -1);
2308 if (primary_header_alignment_src != primary_header_alignment_dst) {
2309 if ((header_alignment_dst != -1) && (tool_header_alignment_dst != -1)) {
2310 if (header_alignment_dst == tool_header_alignment_dst) {
2312 tool_header_alignment_sync = primary_header_alignment_src;
2313 header_alignment_sync = primary_header_alignment_src;
2317 tool_header_alignment_sync = primary_header_alignment_src;
2325 if (header_alignment_dst != -1) {
2326 header_alignment_sync = primary_header_alignment_src;
2328 if (tool_header_alignment_dst != -1) {
2329 tool_header_alignment_sync = primary_header_alignment_src;
2335 if (footer_alignment_dst != -1) {
2336 if ((header_alignment_dst != -1) && (header_alignment_dst == footer_alignment_dst)) {
2338 footer_alignment_sync = primary_header_alignment_src;
2342 footer_alignment_sync = (primary_header_alignment_src ==
RGN_ALIGN_BOTTOM) ?
2349 if (header_alignment_sync != -1) {
2351 if (region !=
NULL) {
2357 if (tool_header_alignment_sync != -1) {
2359 if (region !=
NULL) {
2365 if (footer_alignment_sync != -1) {
2367 if (region !=
NULL) {
2379 const int index = region->regiontype;
2381 region_by_type[index] = region;
2391 region_align_info_src, ®ion_align_info_dst, region_by_type);
2434 void *area_exit =
area->type ?
area->type->exit :
NULL;
2446 bool sync_header_alignment =
false;
2450 sync_header_alignment =
true;
2455 if (skip_region_exit &&
area->type) {
2462 if (skip_region_exit &&
area->type) {
2463 area->type->exit = area_exit;
2478 if (sl_iter->spacetype ==
type) {
2526 if (sync_header_alignment) {
2596 int xco = 0.4 *
U.widget_unit;
2606 1.6 *
U.widget_unit,
2617 return xco + 1.7 *
U.widget_unit;
2653 GPU_clear_color(back[3] * back[0], back[3] * back[1], back[3] * back[2], back[3]);
2662 for (
uint i = 0; arr[i]; i++) {
2663 if (
STREQ(arr[i], s)) {
2686 char *unique_panel_str,
2687 const char *search_filter)
2695 if (unique_panel_str !=
NULL) {
2704 const bool search_filter_active = search_filter !=
NULL && search_filter[0] !=
'\0';
2707 int xco, yco, h = 0;
2766 if (open || search_filter_active) {
2805 if (open || search_filter_active) {
2810 if (child_pt->
draw && (!child_pt->
poll || child_pt->
poll(
C, child_pt))) {
2832 const char *contexts[],
2833 const char *category_override,
2837 if (panel_type->
parent) {
2841 if (category_override) {
2862 if (panel_type->
poll && !panel_type->
poll(
C, panel_type)) {
2880 bool *use_category_tabs)
2885 for (
LinkNode *pt_link = panel_types_stack; pt_link; pt_link = pt_link->
next) {
2898 *use_category_tabs =
false;
2904 const int max_width)
2915 const char *contexts[],
2916 const char *category_override)
2934 const char *category =
NULL;
2938 bool update_tot_size =
true;
2947 if (use_category_tabs) {
2950 if (use_category_tabs) {
2951 margin_x = category_tabs_width;
2967 bool has_instanced_panel =
false;
2968 for (
LinkNode *pt_link = panel_types_stack; pt_link; pt_link = pt_link->
next) {
2972 has_instanced_panel =
true;
2986 update_tot_size =
false;
3001 if (has_instanced_panel) {
3003 if (panel->type ==
NULL) {
3009 if (use_category_tabs && panel->type->category[0] &&
3010 !
STREQ(category, panel->type->category)) {
3017 update_tot_size =
false;
3041 if (region_layout_based) {
3046 if (panel !=
NULL) {
3047 const int size_dyn[2] = {
3052 if ((region->
sizex != size_dyn[0]) || (region->
sizey != size_dyn[1])) {
3053 region->
sizex = size_dyn[0];
3054 region->
sizey = size_dyn[1];
3063 if (v2d->
cur.
ymax < -FLT_EPSILON) {
3078 if (update_tot_size) {
3083 if (use_category_tabs) {
3123 bool use_mask =
false;
3131 bool use_full_hide =
false;
3134 use_full_hide =
true;
3172 const char *search_filter)
3182 if (panel ==
NULL) {
3202 panel_type->
draw(
C, panel);
3214 PanelType *panel_type_child = link->data;
3215 if (!panel_type_child->
poll || panel_type_child->
poll(
C, panel_type_child)) {
3231 const char *contexts[],
3232 const char *category_override)
3246 const char *category =
NULL;
3248 if (use_category_tabs) {
3253 bool has_result =
true;
3254 bool has_instanced_panel =
false;
3255 for (
LinkNode *pt_link = panel_types_stack; pt_link; pt_link = pt_link->
next) {
3259 has_instanced_panel =
true;
3263 if (use_category_tabs) {
3278 if (!has_result && has_instanced_panel) {
3284 if (use_category_tabs) {
3285 if (panel->type->category[0] && !
STREQ(category, panel->type->category)) {
3316 int yco = buttony + (region->
winy - buttony) / 2;
3330 if (ht->poll && !ht->poll(
C, ht)) {
3338 if (buttony_scale != 1.0f) {
3346 ht->draw(
C, &header);
3367 if (region_layout_based && (region->
sizex != new_sizex)) {
3371 region->
sizex = new_sizex;
3382 if (!region_layout_based) {
3470 if (win_other && win_other != win) {
3504 for (
ScrArea *area_iter =
area->next; area_iter; area_iter = area_iter->next) {
3519 const char *text_array[],
3520 float fill_color[4],
3521 const bool full_redraw)
3534 const char **text = &text_array[0];
3538 1.2f *
U.widget_unit);
3545 const char **text = &text_array[0];
3552 rect.
ymin = rect.
ymax - header_height * num_lines;
3571 int offset = num_lines - 1;
3573 const char **text = &text_array[0];
3576 rect.
xmin + 0.6f *
U.widget_unit,
3577 rect.
ymin + 0.3f *
U.widget_unit +
offset * header_height,
3588 GPU_scissor(scissor[0], scissor[1], scissor[2], scissor[3]);
3593 float fill_color[4],
3594 const bool full_redraw)
3596 const char *text_array[2] = {text,
NULL};
3608 uiItemL(row, field, ICON_NONE);
3609 uiItemL(row, value, ICON_NONE);
3639 float gridsize = 0.5f * (zoomx + zoomy);
3640 float gridstep = 1.0f / 32.0f;
3641 if (gridsize <= 0.0f) {
3645 if (gridsize < 1.0f) {
3646 while (gridsize < 1.0f) {
3652 while (gridsize >= 4.0f) {
3658 float blendfac = 0.25f * gridsize -
floorf(0.25f * gridsize);
3659 CLAMP(blendfac, 0.0f, 1.0f);
3661 int count_fine = 1.0f / gridstep;
3662 int count_large = 1.0f / (4.0f * gridstep);
3664 if (count_fine > 0) {
3672 float theme_color[3];
3677 for (
int i = 0; i < count_fine; i++) {
3689 if (count_large > 0) {
3694 for (
int i = 0; i < count_large; i++) {
3703 fac += 4.0f * gridstep;
3716 ARegion *region_iter = region;
3719 while (region_iter->
prev) {
3720 region_iter = region_iter->
prev;
3726 for (; region_iter; region_iter = region_iter->
next) {
3727 if (region != region_iter && region_iter->
overlap) {
3766 if (rect->
xmin == 0 && rect->
ymin == 0 && rect->
xmax == 0 && rect->
ymax == 0) {
3778 const int region_bottom = rect_visible->
ymin;
3793 float font_dims[2] = {0.0f, 0.0f};
3796 BLF_size(fontid, 11.0f *
U.pixelsize,
U.dpi);
3805 immRecti(
pos,
x,
y,
x + font_dims[0] + 6.0f,
y + font_dims[1] + 4.0f);
3810 BLF_draw(fontid, numstr,
sizeof(numstr));
3814 ARegion *region,
const int num_segments,
const int *points,
const int sfra,
const int efra)
3819 const int region_bottom = rect_visible->
ymin;
3826 for (
int a = 0;
a < num_segments;
a++) {
3827 float x1 = (
float)(points[
a * 2] - sfra) / (efra - sfra + 1) * region->
winx;
3828 float x2 = (
float)(points[
a * 2 + 1] - sfra + 1) / (efra - sfra + 1) * region->
winx;
3860 const int snap_match_threshold = 16;
3863 snap_match_threshold)
3866 snap_match_threshold)
3874 bool changed =
false;
3876 if (snap_flag & (1 << 0)) {
3878 if (snap_size != region->
sizex) {
3879 region->
sizex = snap_size;
3883 if (snap_flag & (1 << 1)) {
3885 if (snap_size != region->
sizey) {
3886 region->
sizey = snap_size;
typedef float(TangentPoint)[2]
struct WorkSpace * CTX_wm_workspace(const bContext *C)
struct ScrArea * CTX_wm_area(const bContext *C)
struct Scene * CTX_data_scene(const bContext *C)
struct wmWindowManager * CTX_wm_manager(const bContext *C)
struct bScreen * CTX_wm_screen(const bContext *C)
struct wmWindow * CTX_wm_window(const bContext *C)
void BKE_screen_area_free(struct ScrArea *area)
void BKE_spacedata_copylist(ListBase *lb_dst, ListBase *lb_src)
@ PANEL_TYPE_LAYOUT_VERT_BAR
@ PANEL_TYPE_HEADER_EXPAND
void BKE_area_region_panels_free(struct ListBase *panels)
struct ARegionType * BKE_regiontype_from_id_or_first(const struct SpaceType *st, int regionid)
void BKE_spacedata_freelist(ListBase *lb)
struct ScrArea struct ScrArea * BKE_screen_find_area_xy(struct bScreen *screen, int spacetype, const int xy[2]) ATTR_NONNULL(1
void BKE_area_region_free(struct SpaceType *st, struct ARegion *region)
struct ARegion * BKE_area_region_copy(const struct SpaceType *st, const struct ARegion *region)
struct SpaceType * BKE_spacetype_from_id(int spaceid)
bool BKE_workspace_owner_id_check(const struct WorkSpace *workspace, const char *owner_id) ATTR_NONNULL()
struct bScreen * BKE_workspace_active_screen_get(const struct WorkSpaceInstanceHook *hook) GETTER_ATTRS
void BLF_clipping(int fontid, int xmin, int ymin, int xmax, int ymax)
void BLF_width_and_height(int fontid, const char *str, size_t str_len, float *r_width, float *r_height) ATTR_NONNULL()
#define BLF_DRAW_STR_DUMMY_MAX
void BLF_disable(int fontid, int option)
float BLF_width(int fontid, const char *str, size_t str_len) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void BLF_draw(int fontid, const char *str, size_t str_len) ATTR_NONNULL(2)
void BLF_enable(int fontid, int option)
void BLF_size(int fontid, float size, int dpi)
int BLF_set_default(void)
void BLF_position(int fontid, float x, float y, float z)
#define BLI_assert_msg(a, msg)
#define BLI_linklist_prepend_alloca(listp, ptr)
BLI_LINKSTACK_*** wrapper macros for using a LinkNode to store a stack of pointers,...
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
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)
#define LISTBASE_FOREACH_BACKWARD(type, var, list)
BLI_INLINE void BLI_listbase_clear(struct ListBase *lb)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
MINLINE int round_fl_to_int(float a)
MINLINE int min_ii(int a, int b)
MINLINE float min_ff(float a, float b)
MINLINE int max_ii(int a, int b)
float BLI_thread_frand(int thread) ATTR_WARN_UNUSED_RESULT
void BLI_rcti_union(struct rcti *rct_a, const struct rcti *rct_b)
bool BLI_rcti_isect_pt_v(const struct rcti *rect, const int xy[2])
BLI_INLINE int BLI_rcti_size_y(const struct rcti *rct)
bool BLI_rcti_is_valid(const struct rcti *rect)
void BLI_rcti_translate(struct rcti *rect, int x, int y)
void BLI_rcti_init(struct rcti *rect, int xmin, int xmax, int ymin, int ymax)
void BLI_rcti_resize(struct rcti *rect, int x, int y)
void BLI_rcti_sanitize(struct rcti *rect)
bool BLI_rcti_isect(const struct rcti *src1, const struct rcti *src2, struct rcti *dest)
BLI_INLINE int BLI_rcti_size_x(const struct rcti *rct)
BLI_INLINE int BLI_rcti_cent_y(const struct rcti *rct)
BLI_INLINE float BLI_rctf_size_x(const struct rctf *rct)
BLI_INLINE int BLI_rcti_cent_x(const struct rcti *rct)
void BLI_str_rstrip(char *str) ATTR_NONNULL()
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
size_t BLI_snprintf(char *__restrict dst, size_t maxncpy, const char *__restrict format,...) ATTR_NONNULL(1
#define SET_FLAG_FROM_TEST(value, test, flag)
@ AREA_FLAG_ACTIVE_TOOL_UPDATE
@ AREA_FLAG_REGION_SIZE_UPDATE
@ AREA_FLAG_STACKED_FULLSCREEN
@ AREA_FLAG_ACTIONZONES_UPDATE
#define RGN_ALIGN_ENUM_FROM_MASK(align)
@ RGN_FLAG_SEARCH_FILTER_UPDATE
@ RGN_FLAG_PREFSIZE_OR_HIDDEN
@ RGN_FLAG_SEARCH_FILTER_ACTIVE
#define RGN_TYPE_HAS_CATEGORY_MASK
@ RGN_DRAW_EDITOR_OVERLAYS
#define RGN_ALIGN_FLAG_FROM_MASK(align)
@ SPACE_FLAG_TYPE_WAS_ACTIVE
@ SPACE_FLAG_TYPE_TEMPORARY
@ USER_APP_HIDE_REGION_TOGGLE
@ USER_APP_LOCK_CORNER_SPLIT
@ USER_APP_LOCK_EDGE_RESIZE
@ V2D_SCROLL_VERTICAL_HANDLES
@ V2D_SCROLL_HORIZONTAL_HANDLES
void ED_region_visibility_change_update_animated(struct bContext *C, struct ScrArea *area, struct ARegion *region)
void ED_area_exit(struct bContext *C, struct ScrArea *area)
struct AZone * ED_area_azones_update(ScrArea *area, const int mouse_xy[2])
int ED_screen_area_active(const struct bContext *C)
#define REGION_DRAW_POST_PIXEL
void ED_region_draw_cb_draw(const struct bContext *C, struct ARegion *region, int type)
NSNotificationCenter * center
struct GPUFrameBuffer GPUFrameBuffer
GPUFrameBuffer * GPU_framebuffer_active_get(void)
void GPU_framebuffer_bind(GPUFrameBuffer *fb)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble y1
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble x2
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei width
void GPU_matrix_pop(void)
void GPU_matrix_push(void)
void GPU_matrix_identity_set(void)
void GPU_matrix_translate_2f(float x, float y)
@ GPU_SHADER_2D_UNIFORM_COLOR
@ GPU_SHADER_3D_UNIFORM_COLOR
@ GPU_SHADER_2D_FLAT_COLOR
void GPU_blend(eGPUBlend blend)
void GPU_line_width(float width)
void GPU_scissor(int x, int y, int width, int height)
void GPU_scissor_get(int coords[4])
Contains defines and structs used throughout the imbuf module.
Read Guarded memory(de)allocation.
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position CLAMP
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a color
void UI_panel_category_clear_all(struct ARegion *region)
void UI_panel_category_draw_all(struct ARegion *region, const char *category_id_active)
void UI_panels_begin(const struct bContext *C, struct ARegion *region)
const struct uiStyle * UI_style_get_dpi(void)
void UI_panel_header_buttons_begin(struct Panel *panel)
bool UI_block_apply_search_filter(uiBlock *block, const char *search_filter)
void UI_blocklist_free(const struct bContext *C, struct ARegion *region)
void UI_panel_label_offset(const struct uiBlock *block, int *r_x, int *r_y)
void uiLayoutSetScaleY(uiLayout *layout, float scale)
void UI_blocklist_update_window_matrix(const struct bContext *C, const struct ListBase *lb)
const char * UI_panel_category_active_get(struct ARegion *region, bool set_fallback)
int UI_panel_size_y(const struct Panel *panel)
void uiItemL(uiLayout *layout, const char *name, int icon)
const struct uiStyle * UI_style_get(void)
struct Panel * UI_panel_find_by_type(struct ListBase *lb, const struct PanelType *pt)
void UI_blocklist_free_inactive(const struct bContext *C, struct ARegion *region)
void UI_draw_roundbox_corner_set(int type)
#define UI_PANEL_MARGIN_X
void uiItemS(uiLayout *layout)
void UI_region_message_subscribe(struct ARegion *region, struct wmMsgBus *mbus)
void UI_region_free_active_but_all(struct bContext *context, struct ARegion *region)
struct PanelCategoryDyn * UI_panel_category_find(const struct ARegion *region, const char *idname)
bool UI_panel_is_active(const struct Panel *panel)
void UI_panel_end(struct Panel *panel, int width, int height)
uiLayout * uiLayoutRow(uiLayout *layout, bool align)
void UI_list_panel_unique_str(struct Panel *panel, char *r_name)
void UI_blocklist_update_view_for_buttons(const struct bContext *C, const struct ListBase *lb)
void UI_panels_free_instanced(const struct bContext *C, struct ARegion *region)
void UI_panel_category_add(struct ARegion *region, const char *name)
void UI_block_end(const struct bContext *C, uiBlock *block)
uiBut * uiDefButR(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, struct PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip)
uiLayout * UI_block_layout(uiBlock *block, int dir, int type, int x, int y, int size, int em, int padding, const struct uiStyle *style)
void UI_panel_header_buttons_end(struct Panel *panel)
void UI_panels_end(const struct bContext *C, struct ARegion *region, int *r_x, int *r_y)
#define UI_PANEL_CATEGORY_MARGIN_WIDTH
bool UI_panel_category_is_visible(const struct ARegion *region)
bool UI_panel_should_show_background(const struct ARegion *region, const struct PanelType *panel_type)
int uiLayoutGetWidth(uiLayout *layout)
void UI_draw_roundbox_aa(const struct rctf *rect, bool filled, float rad, const float color[4])
uiBlock * UI_block_begin(const struct bContext *C, struct ARegion *region, const char *name, eUIEmbossType emboss)
void UI_block_layout_free(uiBlock *block)
void UI_blocklist_draw(const struct bContext *C, const struct ListBase *lb)
void UI_panels_draw(const struct bContext *C, struct ARegion *region)
void UI_block_layout_resolve(uiBlock *block, int *r_x, int *r_y)
void UI_region_handlers_add(struct ListBase *handlers)
void UI_block_views_listen(const uiBlock *block, const struct wmRegionListenerParams *listener_params)
struct Panel * UI_panel_begin(struct ARegion *region, struct ListBase *lb, uiBlock *block, struct PanelType *pt, struct Panel *panel, bool *r_open)
void UI_block_translate(uiBlock *block, int x, int y)
#define INSTANCED_PANEL_UNIQUE_STR_LEN
bool UI_panel_is_closed(const struct Panel *panel)
void UI_block_set_search_only(uiBlock *block, bool search_only)
bool UI_panel_is_dragging(const struct Panel *panel)
void UI_icon_draw_ex(float x, float y, int icon_id, float aspect, float alpha, float desaturate, const uchar mono_color[4], bool mono_border)
void UI_GetThemeColor3fv(int colorid, float col[3])
void UI_GetThemeColorShade3fv(int colorid, int offset, float col[3])
void UI_ThemeClearColor(int colorid)
void UI_GetThemeColor4fv(int colorid, float col[4])
void UI_FontThemeColor(int fontid, int colorid)
void UI_SetTheme(int spacetype, int regionid)
#define UI_MARKER_MARGIN_Y
void UI_view2d_region_reinit(struct View2D *v2d, short type, int winx, int winy)
void UI_view2d_totRect_set(struct View2D *v2d, int width, int height)
void UI_view2d_view_restore(const struct bContext *C)
void UI_view2d_view_ortho(const struct View2D *v2d)
#define V2D_SCROLL_HIDE_WIDTH
void UI_view2d_view_to_region(const struct View2D *v2d, float x, float y, int *r_region_x, int *r_region_y) ATTR_NONNULL()
void UI_view2d_mask_from_win(const struct View2D *v2d, struct rcti *r_mask)
@ V2D_COMMONVIEW_PANELS_UI
void UI_view2d_scrollers_draw_ex(struct View2D *v2d, const struct rcti *mask_custom, bool use_full_hide)
#define V2D_SCROLL_HIDE_HEIGHT
void ED_area_do_mgs_subscribe_for_tool_header(const wmRegionMessageSubscribeParams *params)
void ED_area_tag_redraw(ScrArea *area)
const char * ED_area_region_search_filter_get(const ScrArea *area, const ARegion *region)
static void region_align_info_from_area(ScrArea *area, struct RegionTypeAlignInfo *r_align_info)
int ED_region_snap_size_test(const ARegion *region)
ScrArea * ED_screen_areas_iter_first(const wmWindow *win, const bScreen *screen)
bool ED_area_has_shared_border(struct ScrArea *a, struct ScrArea *b)
bool ED_region_property_search(const bContext *C, ARegion *region, ListBase *paneltypes, const char *contexts[], const char *category_override)
void ED_region_tag_refresh_ui(ARegion *region)
void ED_area_do_mgs_subscribe_for_tool_ui(const wmRegionMessageSubscribeParams *params)
void ED_region_update_rect(ARegion *region)
BLI_INLINE bool streq_array_any(const char *s, const char *arr[])
static bool panel_add_check(const bContext *C, const WorkSpace *workspace, const char *contexts[], const char *category_override, PanelType *panel_type)
void ED_region_cursor_set(wmWindow *win, ScrArea *area, ARegion *region)
void ED_region_do_listen(wmRegionListenerParams *params)
int ED_area_global_size_y(const ScrArea *area)
void ED_region_search_filter_update(const ScrArea *area, ARegion *region)
void ED_region_toggle_hidden(bContext *C, ARegion *region)
static int panel_draw_width_from_max_width_get(const ARegion *region, const PanelType *panel_type, const int max_width)
static bool region_uses_category_tabs(const ScrArea *area, const ARegion *region)
struct MetadataPanelDrawContext MetadataPanelDrawContext
static void area_azone_tag_update(ScrArea *area)
int ED_area_global_min_size_y(const ScrArea *area)
void ED_region_tag_redraw_editor_overlays(struct ARegion *region)
static void region_align_info_to_area(ScrArea *area, const struct RegionTypeAlignInfo region_align_info_src[RGN_TYPE_NUM])
void ED_region_floating_init(ARegion *region)
ScrArea * ED_screen_areas_iter_next(const bScreen *screen, const ScrArea *area)
static short region_alignment_from_header_and_tool_header_state(const struct RegionTypeAlignInfo *region_align_info, const short fallback)
void ED_area_status_text(ScrArea *area, const char *str)
static void region_draw_azones(ScrArea *area, ARegion *region)
void ED_area_tag_redraw_no_rebuild(ScrArea *area)
int ED_area_global_max_size_y(const ScrArea *area)
void ED_region_panels(const bContext *C, ARegion *region)
ScrArea * ED_area_find_under_cursor(const bContext *C, int spacetype, const int xy[2])
void ED_region_info_draw(ARegion *region, const char *text, float fill_color[4], const bool full_redraw)
void region_toggle_hidden(bContext *C, ARegion *region, const bool do_fade)
void ED_region_header(const bContext *C, ARegion *region)
static void region_overlap_fix(ScrArea *area, ARegion *region)
static void area_offscreen_exit(wmWindowManager *wm, wmWindow *win, ScrArea *area)
void ED_area_do_listen(wmSpaceTypeListenerParams *params)
static bool panel_property_search(const bContext *C, ARegion *region, const uiStyle *style, Panel *panel, PanelType *panel_type, const char *search_filter)
void ED_region_do_msg_notify_tag_redraw(bContext *UNUSED(C), wmMsgSubscribeKey *UNUSED(msg_key), wmMsgSubscribeValue *msg_val)
int ED_area_headersize(void)
void ED_region_cache_draw_cached_segments(ARegion *region, const int num_segments, const int *points, const int sfra, const int efra)
void ED_region_header_init(ARegion *region)
bool ED_area_is_global(const ScrArea *area)
void ED_region_cache_draw_background(ARegion *region)
void ED_area_swapspace(bContext *C, ScrArea *sa1, ScrArea *sa2)
static void region_draw_emboss(const ARegion *region, const rcti *scirct, int sides)
void ED_region_pixelspace(const ARegion *region)
static void area_calc_totrct(ScrArea *area, const rcti *window_rect)
void ED_area_offscreen_free(wmWindowManager *wm, wmWindow *win, ScrArea *area)
void ED_area_data_copy(ScrArea *area_dst, ScrArea *area_src, const bool do_free)
void ED_region_header_draw(const bContext *C, ARegion *region)
static void region_azone_edge_init(ScrArea *area, ARegion *region, AZEdge edge, const bool is_fullscreen)
void ED_region_tag_redraw_no_rebuild(ARegion *region)
void ED_area_tag_redraw_regiontype(ScrArea *area, int regiontype)
bool ED_region_snap_size_apply(ARegion *region, int snap_flag)
bool ED_region_is_overlap(int spacetype, int regiontype)
static void metadata_panel_draw_field(const char *field, const char *value, void *ctx_v)
void ED_region_tag_redraw_partial(ARegion *region, const rcti *rct, bool rebuild)
static const char * region_panels_collect_categories(ARegion *region, LinkNode *panel_types_stack, bool *use_category_tabs)
static void region_azone_scrollbar_init(ScrArea *area, ARegion *region, AZScrollDirection direction)
static void region_visible_rect_calc(ARegion *region, rcti *rect)
void ED_area_do_msg_notify_tag_refresh(bContext *UNUSED(C), wmMsgSubscribeKey *UNUSED(msg_key), wmMsgSubscribeValue *msg_val)
static void region_azones_add(const bScreen *screen, ScrArea *area, ARegion *region)
void ED_region_visibility_change_update(bContext *C, ScrArea *area, ARegion *region)
static void area_azone_init(wmWindow *win, const bScreen *screen, ScrArea *area)
void ED_region_do_layout(bContext *C, ARegion *region)
void ED_region_tag_redraw_cursor(ARegion *region)
ScrArea * ED_area_offscreen_create(wmWindow *win, eSpace_Type space_type)
void ED_area_newspace(bContext *C, ScrArea *area, int type, const bool skip_region_exit)
static void area_draw_azone_fullscreen(short UNUSED(x1), short UNUSED(y1), short x2, short y2, float alpha)
Corner widget use for quitting fullscreen.
void ED_region_cache_draw_curfra_label(const int framenr, const float x, const float y)
void ED_area_data_swap(ScrArea *area_dst, ScrArea *area_src)
void ED_area_update_region_sizes(wmWindowManager *wm, wmWindow *win, ScrArea *area)
void ED_area_tag_refresh(ScrArea *area)
static void region_azone_tab_plus(ScrArea *area, AZone *az, ARegion *region)
static void ed_default_handlers(wmWindowManager *wm, ScrArea *area, ARegion *region, ListBase *handlers, int flag)
static bool region_azone_edge_poll(const ARegion *region, const bool is_fullscreen)
int ED_area_footersize(void)
void ED_area_do_refresh(bContext *C, ScrArea *area)
static void region_azone_edge(AZone *az, ARegion *region)
static void region_clear_color(const bContext *C, const ARegion *region, ThemeColorID colorid)
void ED_region_panels_layout(const bContext *C, ARegion *region)
void ED_region_panels_init(wmWindowManager *wm, ARegion *region)
void ED_workspace_status_text(bContext *C, const char *str)
void ED_region_image_metadata_panel_draw(ImBuf *ibuf, uiLayout *layout)
static bool event_in_markers_region(const ARegion *region, const wmEvent *event)
static void region_align_info_to_area_for_headers(const struct RegionTypeAlignInfo *region_align_info_src, const struct RegionTypeAlignInfo *region_align_info_dst, ARegion *region_by_type[RGN_TYPE_NUM])
static void region_draw_azone_tab_arrow(ScrArea *area, ARegion *region, AZone *az)
static void region_update_rect(ARegion *region)
int ED_area_header_switchbutton(const bContext *C, uiBlock *block, int yco)
static void ed_panel_draw(const bContext *C, ARegion *region, ListBase *lb, PanelType *pt, Panel *panel, int w, int em, char *unique_panel_str, const char *search_filter)
static void area_offscreen_init(ScrArea *area)
static void region_subwindow(ARegion *region)
static ThemeColorID region_background_color_id(const bContext *C, const ARegion *region)
void ED_region_do_draw(bContext *C, ARegion *region)
void ED_region_tag_redraw(ARegion *region)
void ED_region_panels_layout_ex(const bContext *C, ARegion *region, ListBase *paneltypes, const char *contexts[], const char *category_override)
void ED_region_message_subscribe(wmRegionMessageSubscribeParams *params)
void ED_region_grid_draw(ARegion *region, float zoomx, float zoomy, float x0, float y0)
static void region_draw_status_text(ScrArea *area, ARegion *region)
static SpaceLink * area_get_prevspace(ScrArea *area)
static void fullscreen_azone_init(ScrArea *area, ARegion *region)
void ED_area_prevspace(bContext *C, ScrArea *area)
static bool area_is_pseudo_minimized(const ScrArea *area)
static void area_draw_azone(short UNUSED(x1), short UNUSED(y1), short UNUSED(x2), short UNUSED(y2))
Corner widgets use for dragging and splitting the view.
static void region_rect_recursive(ScrArea *area, ARegion *region, rcti *remainder, rcti *overlap_remainder, int quad)
void ED_area_init(wmWindowManager *wm, wmWindow *win, ScrArea *area)
int ED_region_global_size_y(void)
static void draw_azone_arrow(float x1, float y1, float x2, float y2, AZEdge edge)
Edge widgets to show hidden panels such as the toolbar and headers.
static void region_azones_scrollbars_init(ScrArea *area, ARegion *region)
void ED_region_panels_ex(const bContext *C, ARegion *region, const char *contexts[])
static void region_azones_add_edge(ScrArea *area, ARegion *region, const int alignment, const bool is_fullscreen)
void ED_region_panels_draw(const bContext *C, ARegion *region)
static int rct_fits(const rcti *rect, const eScreenAxis dir_axis, int size)
void ED_region_header_layout(const bContext *C, ARegion *region)
void ED_region_info_draw_multiline(ARegion *region, const char *text_array[], float fill_color[4], const bool full_redraw)
const rcti * ED_region_visible_rect(ARegion *region)
int pad[32 - sizeof(int)]
ATTR_WARN_UNUSED_RESULT const BMLoop * l
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
SyclQueue void void size_t num_bytes void
void GPU_clear_color(float red, float green, float blue, float alpha)
BLI_INLINE float fb(float length, float L)
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
void *(* MEM_mallocN)(size_t len, const char *str)
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)
bool add(void *owner, const AttributeIDRef &attribute_id, eAttrDomain domain, eCustomDataType data_type, const AttributeInit &initializer)
static void area(int d1, int d2, int e1, int e2, float weights[2])
static const pxr::TfToken st("st", pxr::TfToken::Immortal)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
void RNA_pointer_create(ID *id, StructRNA *type, void *data, PointerRNA *r_ptr)
eScreenDir area_getorientation(ScrArea *sa_a, ScrArea *sa_b)
void screen_area_spacelink_add(Scene *scene, ScrArea *area, eSpace_Type space_type)
void(* draw)(const struct bContext *C, struct ARegion *region)
void(* message_subscribe)(const wmRegionMessageSubscribeParams *params)
void(* cursor)(struct wmWindow *win, struct ScrArea *area, struct ARegion *region)
int(* snap_size)(const struct ARegion *region, int size, int axis)
void(* listener)(const wmRegionListenerParams *params)
void(* layout)(const struct bContext *C, struct ARegion *region)
short do_draw_paintcursor
struct wmGizmoMap * gizmo_map
struct ARegionType * type
char owner_id[BKE_ST_MAXNAME]
void(* draw)(const struct bContext *C, struct Panel *panel)
void(* draw_header_preset)(const struct bContext *C, struct Panel *panel)
bool(* poll)(const struct bContext *C, struct PanelType *pt)
void(* draw_header)(const struct bContext *C, struct Panel *panel)
char idname[BKE_ST_MAXNAME]
char context[BKE_ST_MAXNAME]
char category[BKE_ST_MAXNAME]
struct PanelType * parent
struct RegionTypeAlignInfo::@507 by_type[RGN_TYPE_NUM]
ScrGlobalAreaData * global
const struct bContext * context
struct wmMsgBus * message_bus
struct wmKeyConfig * defaultconf
struct wmEvent * eventstate
struct WorkSpaceInstanceHook * workspace_hook
bool ED_time_scrub_event_in_region(const ARegion *region, const wmEvent *event)
void WM_cursor_set(wmWindow *win, int curs)
bool WM_cursor_set_from_tool(struct wmWindow *win, const ScrArea *area, const ARegion *region)
ListBase * WM_dropboxmap_find(const char *idname, int spaceid, int regionid)
static ListBase dropboxes
void WM_draw_region_free(ARegion *region, bool hide)
bool WM_region_use_viewport(ScrArea *area, ARegion *region)
wmEventHandler_Dropbox * WM_event_add_dropbox_handler(ListBase *handlers, ListBase *dropboxes)
void WM_event_get_keymap_from_toolsystem(wmWindowManager *wm, wmWindow *win, wmEventHandler_Keymap *handler, wmEventHandler_KeymapResult *km_result)
void WM_event_modal_handler_region_replace(wmWindow *win, const ARegion *old_region, ARegion *new_region)
wmEventHandler_Keymap * WM_event_add_keymap_handler_dynamic(ListBase *handlers, wmEventHandler_KeymapDynamicFn *keymap_fn, void *user_data)
void WM_event_modal_handler_area_replace(wmWindow *win, const ScrArea *old_area, ScrArea *new_area)
wmEventHandler_Keymap * WM_event_add_keymap_handler_poll(ListBase *handlers, wmKeyMap *keymap, EventHandlerPoll poll)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
wmEventHandler_Keymap * WM_event_add_keymap_handler(ListBase *handlers, wmKeyMap *keymap)
void WM_event_get_keymap_from_toolsystem_with_gizmos(wmWindowManager *wm, wmWindow *win, wmEventHandler_Keymap *handler, wmEventHandler_KeymapResult *km_result)
void WM_event_remove_handlers(bContext *C, ListBase *handlers)
void WM_event_add_mousemove(wmWindow *win)
bool WM_gizmomap_cursor_set(const wmGizmoMap *gzmap, wmWindow *win)
void WM_gizmomap_add_handlers(ARegion *region, wmGizmoMap *gzmap)
void WM_gizmomap_message_subscribe(const bContext *C, wmGizmoMap *gzmap, ARegion *region, struct wmMsgBus *mbus)
wmGizmoMap * WM_gizmomap_new_from_type(const struct wmGizmoMapType_Params *gzmap_params)
wmKeyMap * WM_keymap_ensure(wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid)
void WM_msgbus_clear_by_owner(struct wmMsgBus *mbus, void *owner)
#define WM_msg_subscribe_rna_prop(mbus, id_, data_, type_, prop_, value)
void WM_msg_subscribe_rna(struct wmMsgBus *mbus, PointerRNA *ptr, const PropertyRNA *prop, const wmMsgSubscribeValue *msg_val_params, const char *id_repr)
void wmPartialViewport(rcti *drawrct, const rcti *winrct, const rcti *partialrct)
void wmOrtho2_region_pixelspace(const ARegion *region)
wmWindow * WM_window_find_under_cursor(wmWindow *win, const int mval[2], int r_mval[2])
void WM_event_remove_timer(wmWindowManager *wm, wmWindow *UNUSED(win), wmTimer *timer)
bool WM_window_is_fullscreen(const wmWindow *win)
bScreen * WM_window_get_active_screen(const wmWindow *win)
ViewLayer * WM_window_get_active_view_layer(const wmWindow *win)
WorkSpace * WM_window_get_active_workspace(const wmWindow *win)
void WM_window_rect_calc(const wmWindow *win, rcti *r_rect)
int WM_window_pixels_x(const wmWindow *win)
Scene * WM_window_get_active_scene(const wmWindow *win)