126 if (mask_scroll ==
nullptr) {
127 mask_scroll = &v2d->
mask;
161 float scroll_width, scroll_height;
168 v2d->
vert = *mask_scroll;
173 v2d->
vert = *mask_scroll;
188 v2d->
hor = *mask_scroll;
193 v2d->
hor = *mask_scroll;
219 bool tot_changed =
false, do_init;
265 tot_changed = do_init;
281 tot_changed = do_init;
306 tot_changed = do_init;
331 const float panelzoom = (style) ? style->
panelzoom : 1.0f;
340 v2d->
cur.
xmax = (winx)*panelzoom;
343 v2d->
cur.
ymin = (-winy) * panelzoom;
385 float totwidth, totheight, curwidth, curheight,
width,
height;
428 if (
width < FLT_MIN) {
447 oldzoom = v2d->
oldwinx / curwidth;
449 if (oldzoom != zoom) {
450 width *= zoom / oldzoom;
456 oldzoom = v2d->
oldwiny / curheight;
458 if (oldzoom != zoom) {
470 const float zoom = winx /
width;
471 if (zoom < v2d->minzoom) {
474 else if (zoom > v2d->
maxzoom) {
481 const float zoom = winy /
height;
482 if (zoom < v2d->minzoom) {
485 else if (zoom > v2d->
maxzoom) {
499 bool do_x =
false, do_y =
false, do_cur;
500 float curRatio, winRatio;
513 winRatio = winy / winx;
526 else if (winRatio > curRatio) {
545 if (winx < v2d->oldwinx) {
546 const float temp = v2d->
oldwinx - winx;
567 if (winy < v2d->oldwiny) {
568 const float temp = v2d->
oldwiny - winy;
593 if ((
width != curwidth) || (
height != curheight)) {
597 if (
width != curwidth) {
613 cur->
xmin = temp - dh;
614 cur->
xmax = temp + dh;
617 if (
height != curheight) {
633 cur->
ymin = temp - dh;
634 cur->
ymax = temp + dh;
648 if ((curwidth > totwidth) &&
677 if ((cur->
xmin - temp) < tot->
xmin) {
703 diff = curwidth * 0.5f;
722 if ((cur->
xmin - temp) < tot->
xmin) {
737 if ((curheight > totheight) &&
759 diff = curheight * 0.5f;
862 if (v2dcur != ®ion->v2d) {
867 region->v2d.cur.ymin = v2dcur->
cur.
ymin;
868 region->v2d.cur.ymax = v2dcur->
cur.
ymax;
872 v2dcur->
cur.
ymin = region->v2d.cur.ymin;
873 v2dcur->
cur.
ymax = region->v2d.cur.ymax;
891 if (v2dcur != ®ion->v2d) {
896 region->v2d.cur.xmin = v2dcur->
cur.
xmin;
897 region->v2d.cur.xmax = v2dcur->
cur.
xmax;
901 v2dcur->
cur.
xmin = region->v2d.cur.xmin;
902 v2dcur->
cur.
xmax = region->v2d.cur.xmax;
935 const float dx =
width / 2.0f;
954 const float dy =
height / 2.0f;
972 printf(
"Error: View2D totRect set exiting: v2d=%p width=%d height=%d\n",
1033 if (
G.is_rendering) {
1052 *r_curmasked = v2d->
cur;
1060 if (sizex > 0.0f && sizey > 0.0f) {
1086 const float eps = 0.001f;
1087 float xofs = 0.0f, yofs = 0.0f;
1167 const View2D *v2d,
int colorid,
float step,
int level_size,
int totlevels)
1170 if (totlevels == 0) {
1176 uchar grid_line_color[3];
1179 uint vertex_count = 4;
1180 vertex_count += 2 * ((int)((v2d->
cur.
xmax - v2d->
cur.
xmin) / lstep) + 1);
1181 vertex_count += 2 * ((int)((v2d->
cur.
ymax - v2d->
cur.
ymin) / lstep) + 1);
1193 for (
int level = 0; level < totlevels; level++) {
1198 int i = (int)(v2d->
cur.
xmin / lstep);
1202 float start = i * lstep;
1204 for (; start < v2d->
cur.
xmax; start += lstep, i++) {
1205 if (i == 0 || (level < totlevels - 1 && i % level_size == 0)) {
1215 i = (int)(v2d->
cur.
ymin / lstep);
1221 for (; start < v2d->
cur.
ymax; start += lstep, i++) {
1222 if (i == 0 || (level < totlevels - 1 && i % level_size == 0)) {
1232 lstep *= level_size;
1238 colorid,
TH_GRID, 0.5f, -18 + ((totlevels - 1) * -6), grid_line_color);
1255 const float step,
const float min,
const float max,
float *r_start,
int *r_count)
1258 if (*r_start < 0.0f) {
1259 *r_start += -(
float)fmod(
min, step);
1265 if (*r_start >
max) {
1269 *r_count = (
max - *r_start) / step + 1;
1274 const int grid_color_id,
1275 const float min_step,
1276 const int grid_subdivisions)
1278 BLI_assert(grid_subdivisions >= 0 && grid_subdivisions < 4);
1279 if (grid_subdivisions == 0) {
1291 const float min_point_size = 2.0f *
UI_DPI_FAC;
1292 const float point_size_factor = 1.5f;
1293 const float max_point_size = point_size_factor * min_point_size;
1296 const int subdivision_scale = 5;
1298 const float view_level =
logf(min_step / zoom_x) /
logf(subdivision_scale);
1299 const int largest_visible_level = (int)view_level;
1301 for (
int level_offset = 0; level_offset <= grid_subdivisions; level_offset++) {
1302 const int level = largest_visible_level - level_offset;
1308 const float level_scale =
powf(subdivision_scale, level);
1309 const float point_size_precise = min_point_size * level_scale * zoom_x;
1310 const float point_size_draw =
ceilf(
1311 clamp_f(point_size_precise, min_point_size, max_point_size));
1315 const float alpha =
pow2f(point_size_precise / point_size_draw);
1318 const float alpha_cutoff = 0.01f;
1319 if (alpha < alpha_cutoff) {
1322 const float alpha_clamped =
clamp_f((1.0f + alpha_cutoff) * alpha - alpha_cutoff, 0.0f, 1.0f);
1326 const bool last_level = level_offset == grid_subdivisions;
1327 const float subdivision_fade = last_level ? (1.0f -
fractf(view_level)) : 1.0f;
1331 color[3] = alpha_clamped * subdivision_fade;
1333 const float step = min_step * level_scale;
1340 if (count_x == 0 || count_y == 0) {
1349 for (
int i_y = 0; i_y < count_y; i_y++) {
1350 const float y = start_y + step * i_y;
1351 for (
int i_x = 0; i_x < count_x; i_x++) {
1352 const float x = start_x + step * i_x;
1390 const rcti *mask_custom,
1394 float fac1, fac2, totsize, scrollsize;
1411 smaller = (int)(0.1f *
U.widget_unit);
1413 hor.
ymin += smaller;
1416 hor.
ymax -= smaller;
1420 vert.
xmin += smaller;
1423 vert.
xmax -= smaller;
1430 r_scrollers->
vert = vert;
1431 r_scrollers->
hor = hor;
1443 if (totsize == 0.0f) {
1452 r_scrollers->
hor_min = (int)(hor.
xmin + (fac1 * scrollsize));
1460 r_scrollers->
hor_max = (int)(hor.
xmin + (fac2 * scrollsize));
1481 if (totsize == 0.0f) {
1490 r_scrollers->
vert_min = (int)(vert.
ymin + (fac1 * scrollsize));
1498 r_scrollers->
vert_max = (int)(vert.
ymin + (fac2 * scrollsize));
1525 uchar scrollers_back_color[4];
1531 vert = scrollers.
vert;
1532 hor = scrollers.
hor;
1538 const float alpha_fac = ((v2d->
alpha_hor / 255.0f) * (1.0f - alpha_min)) + alpha_min;
1549 wcol.
inner[3] *= alpha_fac;
1550 wcol.
item[3] *= alpha_fac;
1574 const float alpha_fac = ((v2d->
alpha_vert / 255.0f) * (1.0f - alpha_min)) + alpha_min;
1584 wcol.
inner[3] *= alpha_fac;
1585 wcol.
item[3] *= alpha_fac;
1629 if (columnwidth > 0) {
1631 *r_column =
floorf((viewx - startx) / columnwidth);
1639 if (rowheight > 0) {
1641 *r_row =
floorf((starty - viewy) / rowheight);
1667 const View2D *v2d,
float x,
float y,
float *r_view_x,
float *r_view_y)
1680 (cur_size[0] * (rect_src->
xmin - v2d->
mask.
xmin) / mask_size[0]));
1682 (cur_size[0] * (rect_src->
xmax - v2d->
mask.
xmin) / mask_size[0]));
1684 (cur_size[1] * (rect_src->
ymin - v2d->
mask.
ymin) / mask_size[1]));
1686 (cur_size[1] * (rect_src->
ymax - v2d->
mask.
ymin) / mask_size[1]));
1701 const View2D *v2d,
float x,
float y,
int *r_region_x,
int *r_region_y)
1708 if ((
x >= 0.0f) && (
x <= 1.0f) && (
y >= 0.0f) && (
y <= 1.0f)) {
1722 const View2D *v2d,
float x,
float y,
int *r_region_x,
int *r_region_y)
1738 const View2D *v2d,
float x,
float y,
float *r_region_x,
float *r_region_y)
1750 const float xy_a[2],
1751 const float xy_b[2],
1756 rect_unit.
xmin = rect_unit.
ymin = 0.0f;
1757 rect_unit.
xmax = rect_unit.
ymax = 1.0f;
1760 const float s_a[2] = {
1764 const float s_b[2] = {
1770 r_region_a[0] = r_region_b[0] = r_region_a[1] = r_region_b[1] =
V2D_IS_CLIPPED;
1829 if (((rect_tmp.
xmax < 0.0f) || (rect_tmp.
xmin > 1.0f) || (rect_tmp.
ymax < 0.0f) ||
1830 (rect_tmp.
ymin > 1.0f)) == 0) {
1857 if (
area ==
nullptr) {
1860 if (region ==
nullptr) {
1863 return &(region->
v2d);
1871 if (
area ==
nullptr) {
1874 if (region ==
nullptr) {
1879 return region_win ? &(region_win->
v2d) :
nullptr;
1881 return &(region->
v2d);
1956 if (xfac != -1.0f) {
1958 const float xmin = v2d->
tot.
xmin;
1959 const float xmax = v2d->
tot.
xmax - xsize;
1961 v2d->
cur.
xmin = (xmin * (1.0f - xfac)) + (xmax * xfac);
1965 if (yfac != -1.0f) {
1967 const float ymin = v2d->
tot.
ymin;
1968 const float ymax = v2d->
tot.
ymax - ysize;
1970 v2d->
cur.
ymin = (ymin * (1.0f - yfac)) + (ymax * yfac);
2016 rcti rect_region = *rect;
2035 int scroll_dummy = 0;
2041 int scroll_dummy = 0;
2076 const int alloc_len = str_len + 1;
2089 memset(&v2s->
rect, 0,
sizeof(v2s->
rect));
2091 v2s->
mval[0] = mval[0];
2092 v2s->
mval[1] = mval[1];
2094 memcpy(v2s->
str,
str, alloc_len);
2106 const int alloc_len = str_len + 1;
2124 memcpy(v2s->
str,
str, alloc_len);
2131 int col_pack_prev = 0;
2149 if (col_pack_prev != v2s->
col.
pack) {
2151 col_pack_prev = v2s->
col.
pack;
typedef float(TangentPoint)[2]
struct ScrArea * CTX_wm_area(const bContext *C)
struct ARegion * CTX_wm_region(const bContext *C)
struct ARegion * BKE_area_find_region_type(const struct ScrArea *area, int type)
void BLF_color3ubv(int fontid, const unsigned char rgb[3])
void BLF_clipping(int fontid, int xmin, int ymin, int xmax, int ymax)
void BLF_cache_clear(void)
float BLF_height(int fontid, const char *str, size_t str_len) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
#define BLF_DRAW_STR_DUMMY_MAX
void BLF_disable(int fontid, int option)
void BLF_enable(int fontid, int option)
void BLF_draw_default(float x, float y, float z, const char *str, size_t str_len) ATTR_NONNULL()
int BLF_set_default(void)
A (mainly) macro array library.
Single link-list utility macros. (header only api).
#define BLI_LINKS_PREPEND(list, link)
#define LISTBASE_FOREACH(type, var, list)
MINLINE float pow2f(float x)
MINLINE float clamp_f(float value, float min, float max)
void unit_m4(float m[4][4])
void BLI_memarena_free(struct MemArena *ma) ATTR_NONNULL(1)
struct MemArena * BLI_memarena_new(size_t bufsize, const char *name) ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL ATTR_NONNULL(2) ATTR_MALLOC
void * BLI_memarena_alloc(struct MemArena *ma, size_t size) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC ATTR_ALLOC_SIZE(2)
void BLI_rctf_translate(struct rctf *rect, float x, float y)
BLI_INLINE int BLI_rcti_size_y(const struct rcti *rct)
BLI_INLINE float BLI_rctf_cent_y(const struct rctf *rct)
BLI_INLINE float BLI_rctf_cent_x(const struct rctf *rct)
void BLI_rcti_translate(struct rcti *rect, int x, int y)
void BLI_rctf_transform_calc_m4_pivot_min(const rctf *dst, const rctf *src, float matrix[4][4])
bool BLI_rctf_isect_segment(const struct rctf *rect, const float s1[2], const float s2[2])
void BLI_rctf_recenter(struct rctf *rect, float x, float y)
BLI_INLINE int BLI_rcti_size_x(const struct rcti *rct)
void BLI_rctf_rcti_copy(struct rctf *dst, const struct rcti *src)
BLI_INLINE float BLI_rctf_size_x(const struct rctf *rct)
BLI_INLINE float BLI_rctf_size_y(const struct rctf *rct)
@ V2D_VIEWSYNC_SCREEN_TIME
@ V2D_VIEWSYNC_AREA_VERTICAL
@ V2D_SCROLL_HORIZONTAL_FULLR
@ V2D_SCROLL_HORIZONTAL_HIDE
@ V2D_SCROLL_VERTICAL_FULLR
@ V2D_SCROLL_VERTICAL_HIDE
@ V2D_SCROLL_VERTICAL_HANDLES
@ V2D_SCROLL_HORIZONTAL_HANDLES
void ED_region_tag_redraw_no_rebuild(struct ARegion *region)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei height
_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 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_identity_set(void)
@ GPU_SHADER_2D_FLAT_COLOR
void GPU_line_width(float width)
void GPU_point_size(float size)
Read Guarded memory(de)allocation.
#define MEM_SIZE_OPTIMAL(size)
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
const struct uiStyle * UI_style_get(void)
void UI_draw_widget_scroll(struct uiWidgetColors *wcol, const struct rcti *rect, const struct rcti *slider, int state)
void UI_GetThemeColor3fv(int colorid, float col[3])
struct bTheme * UI_GetTheme(void)
void UI_GetThemeColorBlendShade3ubv(int colorid1, int colorid2, float fac, int offset, unsigned char col[3])
void UI_GetThemeColor4ubv(int colorid, unsigned char col[4])
#define V2D_SCROLL_HEIGHT
#define V2D_SCROLL_MIN_ALPHA
#define V2D_SCROLL_HANDLE_HEIGHT
#define V2D_SCROLL_THUMB_SIZE_MIN
#define IN_2D_HORIZ_SCROLL(v2d, co)
#define V2D_SCROLL_HANDLE_WIDTH
#define IN_2D_VERT_SCROLL(v2d, co)
#define UI_TIME_SCRUB_MARGIN_Y
#define IN_2D_VERT_SCROLL_RECT(v2d, rct)
#define V2D_SCROLL_HANDLE_SIZE_HOTSPOT
#define V2D_SCROLL_MIN_WIDTH
@ V2D_COMMONVIEW_STANDARD
@ V2D_COMMONVIEW_PANELS_UI
#define IN_2D_HORIZ_SCROLL_RECT(v2d, rct)
SyclQueue void void * src
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset
MINLINE float fractf(float a)
ccl_device_inline float2 fabs(const float2 &a)
ccl_device_inline float3 ceil(const float3 &a)
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)
IMETHOD Vector diff(const Vector &a, const Vector &b, double dt=1)
static void area(int d1, int d2, int e1, int e2, float weights[2])
void(* on_view2d_changed)(const struct bContext *C, struct ARegion *region)
struct ARegionType * type
uiWidgetColors wcol_scroll
unsigned char widget_emboss[4]
struct View2DString * next
union View2DString::@443 col
char UI_view2d_rect_in_scrollers(const ARegion *region, const View2D *v2d, const rcti *rect)
void UI_view2d_curRect_validate(View2D *v2d)
void UI_view2d_center_set(struct View2D *v2d, float x, float y)
void UI_view2d_sync(bScreen *screen, ScrArea *area, View2D *v2dcur, int flag)
static void grid_axis_start_and_count(const float step, const float min, const float max, float *r_start, int *r_count)
void UI_view2d_scale_get_inverse(const View2D *v2d, float *r_x, float *r_y)
void UI_view2d_curRect_reset(View2D *v2d)
static void ui_view2d_curRect_validate_resize(View2D *v2d, bool resize)
bool UI_view2d_view_to_region_segment_clip(const View2D *v2d, const float xy_a[2], const float xy_b[2], int r_region_a[2], int r_region_b[2])
void UI_view2d_region_to_view(const View2D *v2d, float x, float y, float *r_view_x, float *r_view_y)
void UI_view2d_view_orthoSpecial(ARegion *region, View2D *v2d, const bool xaxis)
char UI_view2d_mouse_in_scrollers(const ARegion *region, const View2D *v2d, const int xy[2])
void UI_view2d_multi_grid_draw(const View2D *v2d, int colorid, float step, int level_size, int totlevels)
static View2DString * g_v2d_strings
void UI_view2d_view_to_region_rcti(const View2D *v2d, const rctf *rect_src, rcti *rect_dst)
bool UI_view2d_view_to_region_clip(const View2D *v2d, float x, float y, int *r_region_x, int *r_region_y)
bool UI_view2d_view_to_region_rcti_clip(const View2D *v2d, const rctf *rect_src, rcti *rect_dst)
char UI_view2d_mouse_in_scrollers_ex(const ARegion *region, const View2D *v2d, const int xy[2], int *r_scroll)
void UI_view2d_dot_grid_draw(const View2D *v2d, const int grid_color_id, const float min_step, const int grid_subdivisions)
void UI_view2d_scrollers_draw(View2D *v2d, const rcti *mask_custom)
BLI_INLINE void clamp_rctf_to_rcti(rcti *dst, const rctf *src)
View2D * UI_view2d_fromcontext(const bContext *C)
void UI_view2d_view_restore(const bContext *C)
void UI_view2d_region_reinit(View2D *v2d, short type, int winx, int winy)
void UI_view2d_curRect_changed(const bContext *C, View2D *v2d)
void UI_view2d_text_cache_draw(ARegion *region)
void UI_view2d_totRect_set(View2D *v2d, int width, int height)
void UI_view2d_region_to_view_rctf(const View2D *v2d, const rctf *rect_src, rctf *rect_dst)
static int view2d_scroll_mapped(int scroll)
float UI_view2d_view_to_region_y(const View2D *v2d, float y)
void UI_view2d_listview_view_to_cell(float columnwidth, float rowheight, float startx, float starty, float viewx, float viewy, int *r_column, int *r_row)
void UI_view2d_view_ortho(const View2D *v2d)
static MemArena * g_v2d_strings_arena
void UI_view2d_view_to_region(const View2D *v2d, float x, float y, int *r_region_x, int *r_region_y)
void UI_view2d_zoom_cache_reset(void)
View2D * UI_view2d_fromcontext_rwin(const bContext *C)
float UI_view2d_scale_get_y(const View2D *v2d)
void UI_view2d_scroller_size_get(const View2D *v2d, bool mapped, float *r_x, float *r_y)
void UI_view2d_scale_get(const View2D *v2d, float *r_x, float *r_y)
bool UI_view2d_area_supports_sync(ScrArea *area)
void UI_view2d_mask_from_win(const View2D *v2d, rcti *r_mask)
char UI_view2d_rect_in_scrollers_ex(const ARegion *region, const View2D *v2d, const rcti *rect, int *r_scroll)
void UI_view2d_view_to_region_m4(const View2D *v2d, float matrix[4][4])
void UI_view2d_view_to_region_fl(const View2D *v2d, float x, float y, float *r_region_x, float *r_region_y)
float UI_view2d_region_to_view_x(const struct View2D *v2d, float x)
void UI_view2d_text_cache_add(View2D *v2d, float x, float y, const char *str, size_t str_len, const uchar col[4])
float UI_view2d_view_to_region_x(const View2D *v2d, float x)
void UI_view2d_scrollers_calc(View2D *v2d, const rcti *mask_custom, struct View2DScrollers *r_scrollers)
void UI_view2d_center_get(const struct View2D *v2d, float *r_x, float *r_y)
float UI_view2d_region_to_view_y(const struct View2D *v2d, float y)
static void view2d_map_cur_using_mask(const View2D *v2d, rctf *r_curmasked)
void UI_view2d_totRect_set_resize(View2D *v2d, int width, int height, bool resize)
BLI_INLINE int clamp_float_to_int(const float f)
void UI_view2d_scrollers_draw_ex(View2D *v2d, const rcti *mask_custom, bool use_full_hide)
static void view2d_masks(View2D *v2d, const rcti *mask_scroll)
void UI_view2d_offset(struct View2D *v2d, float xfac, float yfac)
void UI_view2d_text_cache_add_rectf(View2D *v2d, const rctf *rect_view, const char *str, size_t str_len, const uchar col[4])
float UI_view2d_scale_get_x(const View2D *v2d)
void wmOrtho2(float x1, float x2, float y1, float y2)
void wmOrtho2_region_pixelspace(const ARegion *region)