Blender V5.0
UI_view2d.hh File Reference
#include "BLI_compiler_attrs.h"
#include "BLI_rect.h"

Go to the source code of this file.

Classes

struct  View2DEdgePanData

Macros

Defines for Scroll Bars
#define V2D_SCROLL_HEIGHT   ((0.45f * U.widget_unit) + (2.0f * U.pixelsize))
#define V2D_SCROLL_WIDTH   ((0.45f * U.widget_unit) + (2.0f * U.pixelsize))
#define V2D_SCROLL_MIN_ALPHA   (0.4f)
#define V2D_SCROLL_MIN_WIDTH   ((5.0f * UI_SCALE_FAC) + (2.0f * U.pixelsize))
#define V2D_SCROLL_HIDE_WIDTH   (AREAMINX * UI_SCALE_FAC)
#define V2D_SCROLL_HIDE_HEIGHT   (HEADERY * UI_SCALE_FAC)
#define V2D_SCROLL_HANDLE_HEIGHT   (0.6f * U.widget_unit)
#define V2D_SCROLL_HANDLE_WIDTH   (0.6f * U.widget_unit)
#define V2D_SCROLL_HANDLE_SIZE_HOTSPOT   (0.6f * U.widget_unit)
#define V2D_SCROLL_THUMB_SIZE_MIN   (30.0 * UI_SCALE_FAC)
Define for #UI_view2d_sync
#define V2D_LOCK_SET   0
#define V2D_LOCK_COPY   1
Macros
#define IN_2D_VERT_SCROLL(v2d, co)
#define IN_2D_HORIZ_SCROLL(v2d, co)
#define IN_2D_VERT_SCROLL_RECT(v2d, rct)
#define IN_2D_HORIZ_SCROLL_RECT(v2d, rct)

Functions

Prototypes
void UI_view2d_region_reinit (View2D *v2d, short type, int winx, int winy)
void UI_view2d_curRect_validate (View2D *v2d)
void UI_view2d_curRect_reset (View2D *v2d)
bool UI_view2d_area_supports_sync (ScrArea *area)
void UI_view2d_sync (bScreen *screen, ScrArea *area, View2D *v2dcur, int flag)
void UI_view2d_curRect_changed (const bContext *C, View2D *v2d)
void UI_view2d_totRect_set (View2D *v2d, int width, int height)
void UI_view2d_mask_from_win (const View2D *v2d, rcti *r_mask)
void UI_view2d_zoom_cache_reset ()
void UI_view2d_curRect_clamp_y (View2D *v2d)
View Matrix Operations
void UI_view2d_view_ortho (const View2D *v2d)
void UI_view2d_view_orthoSpecial (ARegion *region, View2D *v2d, bool xaxis)
void UI_view2d_view_restore (const bContext *C)
Grid Drawing
void UI_view2d_multi_grid_draw (const View2D *v2d, int colorid, float step, int level_size, int totlevels)
void UI_view2d_dot_grid_draw (const View2D *v2d, int grid_color_id, float min_step, int grid_subdivisions)
void UI_view2d_draw_lines_y__values (const View2D *v2d, int base)
void UI_view2d_draw_lines_x__values (const View2D *v2d, int base)
void UI_view2d_draw_lines_x__discrete_values (const View2D *v2d, int base, bool display_minor_lines)
void UI_view2d_draw_lines_x__discrete_time (const View2D *v2d, int base, bool display_minor_lines)
void UI_view2d_draw_lines_x__discrete_frames_or_seconds (const View2D *v2d, const Scene *scene, bool display_seconds, bool display_minor_lines)
void UI_view2d_draw_lines_x__frames_or_seconds (const View2D *v2d, const Scene *scene, bool display_seconds)
float UI_view2d_grid_resolution_x__frames_or_seconds (const View2D *v2d, const Scene *scene)
float UI_view2d_grid_resolution_y__values (const View2D *v2d, int base)
void UI_view2d_draw_scale_y__values (const ARegion *region, const View2D *v2d, const rcti *rect, int colorid, int base)
void UI_view2d_draw_scale_x__discrete_frames_or_seconds (const ARegion *region, const View2D *v2d, const rcti *rect, const Scene *scene, bool display_seconds, int colorid, int base)
void UI_view2d_draw_scale_x__frames_or_seconds (const ARegion *region, const View2D *v2d, const rcti *rect, const Scene *scene, bool display_seconds, int colorid, int base)
Scroll-bar Drawing
void UI_view2d_scrollers_draw (View2D *v2d, const rcti *mask_custom)
List View Tools
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)
Coordinate Conversion
float UI_view2d_region_to_view_x (const View2D *v2d, float x)
float UI_view2d_region_to_view_y (const View2D *v2d, float y)
void UI_view2d_region_to_view (const View2D *v2d, float x, float y, float *r_view_x, float *r_view_y) ATTR_NONNULL()
void UI_view2d_region_to_view_rctf (const View2D *v2d, const rctf *rect_src, rctf *rect_dst) ATTR_NONNULL()
float UI_view2d_view_to_region_x (const View2D *v2d, float x)
float UI_view2d_view_to_region_y (const View2D *v2d, float y)
bool UI_view2d_view_to_region_clip (const View2D *v2d, float x, float y, int *r_region_x, int *r_region_y) ATTR_NONNULL()
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]) ATTR_NONNULL()
void UI_view2d_view_to_region (const View2D *v2d, float x, float y, int *r_region_x, int *r_region_y) ATTR_NONNULL()
void UI_view2d_view_to_region_fl (const View2D *v2d, float x, float y, float *r_region_x, float *r_region_y) ATTR_NONNULL()
void UI_view2d_view_to_region_m4 (const View2D *v2d, float matrix[4][4]) ATTR_NONNULL()
void UI_view2d_view_to_region_rcti (const View2D *v2d, const rctf *rect_src, rcti *rect_dst) ATTR_NONNULL()
bool UI_view2d_view_to_region_rcti_clip (const View2D *v2d, const rctf *rect_src, rcti *rect_dst) ATTR_NONNULL()
Utilities
View2DUI_view2d_fromcontext (const bContext *C)
View2DUI_view2d_fromcontext_rwin (const bContext *C)
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)
float UI_view2d_scale_get_x (const View2D *v2d)
float UI_view2d_scale_get_y (const View2D *v2d)
void UI_view2d_scale_get_inverse (const View2D *v2d, float *r_x, float *r_y)
void UI_view2d_center_get (const View2D *v2d, float *r_x, float *r_y)
void UI_view2d_center_set (View2D *v2d, float x, float y)
void UI_view2d_offset (View2D *v2d, float xfac, float yfac)
void UI_view2d_offset_y_snap_to_closest_page (View2D *v2d)
char UI_view2d_mouse_in_scrollers_ex (const ARegion *region, const View2D *v2d, const int xy[2], int *r_scroll) ATTR_NONNULL(1
char char UI_view2d_mouse_in_scrollers (const ARegion *region, const View2D *v2d, const int xy[2]) ATTR_NONNULL(1
char char char UI_view2d_rect_in_scrollers_ex (const ARegion *region, const View2D *v2d, const rcti *rect, int *r_scroll) ATTR_NONNULL(1
char char char char UI_view2d_rect_in_scrollers (const ARegion *region, const View2D *v2d, const rcti *rect) ATTR_NONNULL(1
char char char char void UI_view2d_text_cache_add (View2D *v2d, float x, float y, const char *str, size_t str_len, const unsigned char col[4])
void UI_view2d_text_cache_add_rectf (View2D *v2d, const rctf *rect_view, const char *str, size_t str_len, const unsigned char col[4])
void UI_view2d_text_cache_draw (ARegion *region)
Gizmo Types
void VIEW2D_GGT_navigate_impl (wmGizmoGroupType *gzgt, const char *idname)
Edge Pan
void UI_view2d_edge_pan_init (bContext *C, View2DEdgePanData *vpd, float inside_pad, float outside_pad, float speed_ramp, float max_speed, float delay, float zoom_influence)
void UI_view2d_edge_pan_set_limits (View2DEdgePanData *vpd, float xmin, float xmax, float ymin, float ymax)
void UI_view2d_edge_pan_reset (View2DEdgePanData *vpd)
void UI_view2d_edge_pan_apply (bContext *C, View2DEdgePanData *vpd, const int xy[2]) ATTR_NONNULL(1
void void UI_view2d_edge_pan_apply_event (bContext *C, View2DEdgePanData *vpd, const wmEvent *event)
void UI_view2d_edge_pan_cancel (bContext *C, View2DEdgePanData *vpd)
void UI_view2d_edge_pan_operator_properties (wmOperatorType *ot)
void UI_view2d_edge_pan_operator_properties_ex (wmOperatorType *ot, float inside_pad, float outside_pad, float speed_ramp, float max_speed, float delay, float zoom_influence)
void UI_view2d_edge_pan_operator_init (bContext *C, View2DEdgePanData *vpd, wmOperator *op)

General Defines

#define V2D_IS_CLIPPED   12000
enum  eView2D_CommonViewTypes {
  V2D_COMMONVIEW_CUSTOM = -1 , V2D_COMMONVIEW_STANDARD , V2D_COMMONVIEW_LIST , V2D_COMMONVIEW_STACK ,
  V2D_COMMONVIEW_HEADER , V2D_COMMONVIEW_PANELS_UI
}

Operators

#define UI_MARKER_MARGIN_Y   (42 * UI_SCALE_FAC)
#define UI_TIME_SCRUB_MARGIN_Y   (23 * UI_SCALE_FAC)
#define UI_TIME_CACHE_MARGIN_Y   (UI_TIME_SCRUB_MARGIN_Y / 6.0f)
#define UI_ANIM_MINY   (HEADERY * UI_SCALE_FAC * 1.1f)
#define UI_MARKERS_MINY   (HEADERY * UI_SCALE_FAC * 2.0f)
void ED_operatortypes_view2d ()
void ED_keymap_view2d (wmKeyConfig *keyconf)
void UI_view2d_smooth_view (const bContext *C, ARegion *region, const rctf *cur, int smooth_viewtx)

Detailed Description

Generic 2D view with should allow drawing grids, panning, zooming, scrolling, .. etc.

Definition in file UI_view2d.hh.

Macro Definition Documentation

◆ IN_2D_HORIZ_SCROLL

#define IN_2D_HORIZ_SCROLL ( v2d,
co )
Value:
(BLI_rcti_isect_pt_v(&v2d->hor, co))
bool BLI_rcti_isect_pt_v(const struct rcti *rect, const int xy[2])

Definition at line 95 of file UI_view2d.hh.

Referenced by UI_view2d_mouse_in_scrollers_ex().

◆ IN_2D_HORIZ_SCROLL_RECT

#define IN_2D_HORIZ_SCROLL_RECT ( v2d,
rct )
Value:
(BLI_rcti_isect(&v2d->hor, rct, NULL))
bool BLI_rcti_isect(const struct rcti *src1, const struct rcti *src2, struct rcti *dest)

Definition at line 98 of file UI_view2d.hh.

Referenced by UI_view2d_rect_in_scrollers_ex().

◆ IN_2D_VERT_SCROLL

#define IN_2D_VERT_SCROLL ( v2d,
co )
Value:
(BLI_rcti_isect_pt_v(&v2d->vert, co))

Definition at line 94 of file UI_view2d.hh.

Referenced by UI_view2d_mouse_in_scrollers_ex().

◆ IN_2D_VERT_SCROLL_RECT

#define IN_2D_VERT_SCROLL_RECT ( v2d,
rct )
Value:
(BLI_rcti_isect(&v2d->vert, rct, NULL))

Definition at line 97 of file UI_view2d.hh.

Referenced by UI_view2d_rect_in_scrollers_ex().

◆ UI_ANIM_MINY

◆ UI_MARKER_MARGIN_Y

◆ UI_MARKERS_MINY

#define UI_MARKERS_MINY   (HEADERY * UI_SCALE_FAC * 2.0f)

Definition at line 482 of file UI_view2d.hh.

Referenced by ed_markers_poll_markers_exist_visible().

◆ UI_TIME_CACHE_MARGIN_Y

◆ UI_TIME_SCRUB_MARGIN_Y

◆ V2D_IS_CLIPPED

◆ V2D_LOCK_COPY

◆ V2D_LOCK_SET

#define V2D_LOCK_SET   0

Definition at line 83 of file UI_view2d.hh.

◆ V2D_SCROLL_HANDLE_HEIGHT

#define V2D_SCROLL_HANDLE_HEIGHT   (0.6f * U.widget_unit)

◆ V2D_SCROLL_HANDLE_SIZE_HOTSPOT

#define V2D_SCROLL_HANDLE_SIZE_HOTSPOT   (0.6f * U.widget_unit)

Scroll bar with 'handles' hot-spot radius for cursor proximity.

Definition at line 71 of file UI_view2d.hh.

Referenced by scrollbar_zone_get(), UI_view2d_scrollers_draw(), and view2d_scrollers_calc().

◆ V2D_SCROLL_HANDLE_WIDTH

#define V2D_SCROLL_HANDLE_WIDTH   (0.6f * U.widget_unit)

Definition at line 68 of file UI_view2d.hh.

Referenced by UI_view2d_scroller_size_get().

◆ V2D_SCROLL_HEIGHT

#define V2D_SCROLL_HEIGHT   ((0.45f * U.widget_unit) + (2.0f * U.pixelsize))

◆ V2D_SCROLL_HIDE_HEIGHT

#define V2D_SCROLL_HIDE_HEIGHT   (HEADERY * UI_SCALE_FAC)

Definition at line 64 of file UI_view2d.hh.

Referenced by area_actionzone_get_rect(), and area_actionzone_refresh_xy().

◆ V2D_SCROLL_HIDE_WIDTH

#define V2D_SCROLL_HIDE_WIDTH   (AREAMINX * UI_SCALE_FAC)

Definition at line 63 of file UI_view2d.hh.

Referenced by area_actionzone_get_rect(), and area_actionzone_refresh_xy().

◆ V2D_SCROLL_MIN_ALPHA

#define V2D_SCROLL_MIN_ALPHA   (0.4f)

Definition at line 57 of file UI_view2d.hh.

Referenced by UI_view2d_scrollers_draw().

◆ V2D_SCROLL_MIN_WIDTH

#define V2D_SCROLL_MIN_WIDTH   ((5.0f * UI_SCALE_FAC) + (2.0f * U.pixelsize))

Definition at line 60 of file UI_view2d.hh.

Referenced by UI_view2d_scroller_size_get().

◆ V2D_SCROLL_THUMB_SIZE_MIN

#define V2D_SCROLL_THUMB_SIZE_MIN   (30.0 * UI_SCALE_FAC)

Don't allow scroll thumb to show below this size (so it's never too small to click on).

Definition at line 74 of file UI_view2d.hh.

Referenced by view2d_scrollers_calc().

◆ V2D_SCROLL_WIDTH

Enumeration Type Documentation

◆ eView2D_CommonViewTypes

Common View2D view types.

Note
only define a type here if it completely sets all (+/- a few) of the relevant flags and settings for a View2D region, and that set of settings is used in more than one specific place.
Enumerator
V2D_COMMONVIEW_CUSTOM 

custom view type (region has defined all necessary flags already).

V2D_COMMONVIEW_STANDARD 

standard (only use this when setting up a new view, as a sensible base for most settings).

V2D_COMMONVIEW_LIST 

List-view (i.e. Outliner).

V2D_COMMONVIEW_STACK 

Stack-view (this is basically a list where new items are added at the top).

V2D_COMMONVIEW_HEADER 

headers (this is basically the same as list-view, but no Y-panning).

V2D_COMMONVIEW_PANELS_UI 

UI region containing panels.

Definition at line 29 of file UI_view2d.hh.

Function Documentation

◆ ED_keymap_view2d()

void ED_keymap_view2d ( wmKeyConfig * keyconf)

Definition at line 2359 of file view2d_ops.cc.

References RGN_TYPE_WINDOW, SPACE_EMPTY, and WM_keymap_ensure().

Referenced by ED_spacetypes_keymap().

◆ ED_operatortypes_view2d()

◆ UI_view2d_area_supports_sync()

bool UI_view2d_area_supports_sync ( ScrArea * area)

Definition at line 860 of file view2d.cc.

References ELEM, SPACE_ACTION, SPACE_CLIP, SPACE_GRAPH, SPACE_NLA, SPACE_SEQ, and ScrArea::spacetype.

Referenced by UI_view2d_sync().

◆ UI_view2d_center_get()

void UI_view2d_center_get ( const View2D * v2d,
float * r_x,
float * r_y )

Simple functions for consistent center offset access. Used by node editor to shift view center for each individual node tree.

Definition at line 1939 of file view2d.cc.

References BLI_rctf_cent_x(), BLI_rctf_cent_y(), and View2D::cur.

Referenced by actkeys_viewall(), nlaedit_viewall(), and blender::ed::space_node::node_draw_space().

◆ UI_view2d_center_set()

◆ UI_view2d_curRect_changed()

void UI_view2d_curRect_changed ( const bContext * C,
View2D * v2d )

Perform all required updates after v2d->cur as been modified. This includes like validation view validation (UI_view2d_curRect_validate).

Current intent is to use it from user code, such as view navigation and zoom operations.

Definition at line 833 of file view2d.cc.

References C, CTX_wm_region(), ARegion::runtime, and UI_view2d_curRect_validate().

Referenced by edge_pan_apply_delta(), reset_exec(), scroller_activate_apply(), blender::ed::vse::sequencer_view_all_preview_exec(), blender::ed::vse::sequencer_view_zoom_ratio_exec(), UI_but_ensure_in_view(), UI_view2d_edge_pan_cancel(), UI_view2d_smooth_view(), view2d_smoothview_invoke(), view_pan_apply_ex(), view_zoomdrag_apply(), and view_zoomstep_apply_ex().

◆ UI_view2d_curRect_clamp_y()

void UI_view2d_curRect_clamp_y ( View2D * v2d)

Clamp view2d area to what's visible, preventing scrolling vertically to infinity.

Definition at line 844 of file view2d.cc.

References BLI_rctf_size_y(), View2D::cur, View2D::tot, rctf::ymax, and rctf::ymin.

Referenced by nla_track_region_draw(), set_v2d_height(), and set_v2d_height().

◆ UI_view2d_curRect_reset()

void UI_view2d_curRect_reset ( View2D * v2d)

Restore 'cur' rect to standard orientation (i.e. optimal maximum view of tot). This does not take into account if zooming the view on an axis will improve the view (if allowed).

Definition at line 928 of file view2d.cc.

References View2D::align, BLI_rcti_size_x(), BLI_rcti_size_y(), View2D::cur, float, View2D::mask, V2D_ALIGN_NO_NEG_X, V2D_ALIGN_NO_NEG_Y, V2D_ALIGN_NO_POS_X, V2D_ALIGN_NO_POS_Y, rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.

◆ UI_view2d_curRect_validate()

◆ UI_view2d_dot_grid_draw()

void UI_view2d_dot_grid_draw ( const View2D * v2d,
int grid_color_id,
float min_step,
int grid_subdivisions )

Draw a multi-level grid of dots, with a dynamic number of levels based on the fading.

Parameters
grid_color_idThe theme color used for the points. Faded dynamically based on zoom.
min_stepThe base size of the grid. At different zoom levels, the visible grid may have a larger step size.
grid_subdivisionsThe maximum number of sub-levels drawn at once.

Definition at line 1287 of file view2d.cc.

References BLI_assert, BLI_rctf_size_x(), BLI_rcti_size_x(), ceilf, clamp_f(), View2D::cur, float, fractf, GPU_PRIM_POINTS, GPU_program_point_size(), GPU_SHADER_2D_POINT_UNIFORM_SIZE_UNIFORM_COLOR_AA, GPU_vertformat_attr_add(), grid_axis_start_and_count(), immBegin(), immBindBuiltinProgram(), immEnd(), immUnbindProgram(), immUniform1f(), immUniform4fv(), immVertex2f(), immVertexFormat(), logf, View2D::mask, pos, pow2f(), powf, step, U, UI_GetThemeColor3fv(), x, rctf::xmax, rctf::xmin, y, rctf::ymax, and rctf::ymin.

Referenced by blender::ed::space_node::node_draw_space().

◆ UI_view2d_draw_lines_x__discrete_frames_or_seconds()

void UI_view2d_draw_lines_x__discrete_frames_or_seconds ( const View2D * v2d,
const Scene * scene,
bool display_seconds,
bool display_minor_lines )

◆ UI_view2d_draw_lines_x__discrete_time()

void UI_view2d_draw_lines_x__discrete_time ( const View2D * v2d,
int base,
bool display_minor_lines )

◆ UI_view2d_draw_lines_x__discrete_values()

void UI_view2d_draw_lines_x__discrete_values ( const View2D * v2d,
int base,
bool display_minor_lines )

◆ UI_view2d_draw_lines_x__frames_or_seconds()

void UI_view2d_draw_lines_x__frames_or_seconds ( const View2D * v2d,
const Scene * scene,
bool display_seconds )

◆ UI_view2d_draw_lines_x__values()

void UI_view2d_draw_lines_x__values ( const View2D * v2d,
int base )

◆ UI_view2d_draw_lines_y__values()

void UI_view2d_draw_lines_y__values ( const View2D * v2d,
int base )

Draw horizontal lines.

Parameters
baseDefines in what step the lines are drawn. Depending on the zoom level of the v2d the step is a full fraction of the given base.

Definition at line 511 of file view2d_draw.cc.

References BLI_rctf_size_y(), BLI_rcti_size_y(), calculate_grid_step_subframes(), View2D::cur, View2D::mask, and view2d_draw_lines().

Referenced by clip_draw_graph(), and graph_main_region_draw().

◆ UI_view2d_draw_scale_x__discrete_frames_or_seconds()

void UI_view2d_draw_scale_x__discrete_frames_or_seconds ( const ARegion * region,
const View2D * v2d,
const rcti * rect,
const Scene * scene,
bool display_seconds,
int colorid,
int base )

Draw a text scale in either frames or seconds. The minimum step distance is 1, meaning no subframe indicators will be drawn.

Definition at line 568 of file view2d_draw.cc.

References BLI_rctf_size_x(), BLI_rcti_size_x(), calculate_grid_step(), View2D::cur, draw_horizontal_scale_indicators(), View2D::mask, step, view_to_string__frame_number(), and view_to_string__time().

Referenced by ED_time_scrub_draw().

◆ UI_view2d_draw_scale_x__frames_or_seconds()

void UI_view2d_draw_scale_x__frames_or_seconds ( const ARegion * region,
const View2D * v2d,
const rcti * rect,
const Scene * scene,
bool display_seconds,
int colorid,
int base )

Draw a text scale in either frames or seconds. This can draw indicators on subframes, e.g. "1.5".

Definition at line 588 of file view2d_draw.cc.

References BLI_rctf_size_x(), BLI_rcti_size_x(), calculate_grid_step(), calculate_grid_step_subframes(), View2D::cur, draw_horizontal_scale_indicators(), View2D::mask, step, view_to_string__time(), and view_to_string__value().

Referenced by ED_time_scrub_draw().

◆ UI_view2d_draw_scale_y__values()

void UI_view2d_draw_scale_y__values ( const ARegion * region,
const View2D * v2d,
const rcti * rect,
int colorid,
int base )

◆ UI_view2d_edge_pan_apply()

void UI_view2d_edge_pan_apply ( bContext * C,
View2DEdgePanData * vpd,
const int xy[2] )

◆ UI_view2d_edge_pan_apply_event()

void void UI_view2d_edge_pan_apply_event ( bContext * C,
View2DEdgePanData * vpd,
const wmEvent * event )

Apply transform to view using mouse events.

Definition at line 272 of file view2d_edge_pan.cc.

References C, MOUSEMOVE, wmEvent::type, UI_view2d_edge_pan_apply(), and wmEvent::xy.

Referenced by blender::ed::space_node::node_link_modal(), and view_edge_pan_modal().

◆ UI_view2d_edge_pan_cancel()

◆ UI_view2d_edge_pan_init()

◆ UI_view2d_edge_pan_operator_init()

void UI_view2d_edge_pan_operator_init ( bContext * C,
View2DEdgePanData * vpd,
wmOperator * op )

Initialize panning data with operator settings.

Definition at line 381 of file view2d_edge_pan.cc.

References C, wmOperator::ptr, RNA_float_get(), and UI_view2d_edge_pan_init().

Referenced by blender::ed::space_node::node_link_invoke(), and view_edge_pan_invoke().

◆ UI_view2d_edge_pan_operator_properties()

void UI_view2d_edge_pan_operator_properties ( wmOperatorType * ot)

Definition at line 303 of file view2d_edge_pan.cc.

References ot, and UI_view2d_edge_pan_operator_properties_ex().

Referenced by VIEW2D_OT_edge_pan().

◆ UI_view2d_edge_pan_operator_properties_ex()

void UI_view2d_edge_pan_operator_properties_ex ( wmOperatorType * ot,
float inside_pad,
float outside_pad,
float speed_ramp,
float max_speed,
float delay,
float zoom_influence )

◆ UI_view2d_edge_pan_reset()

◆ UI_view2d_edge_pan_set_limits()

void UI_view2d_edge_pan_set_limits ( View2DEdgePanData * vpd,
float xmin,
float xmax,
float ymin,
float ymax )

Set area which can be panned

Definition at line 90 of file view2d_edge_pan.cc.

References BLI_rctf_init(), and View2DEdgePanData::limit.

Referenced by blender::ed::transform::createTransSeqData().

◆ UI_view2d_fromcontext()

View2D * UI_view2d_fromcontext ( const bContext * C)

View2D data by default resides in region, so get from region stored in context.

Definition at line 1855 of file view2d.cc.

References C, CTX_wm_area(), CTX_wm_region(), and ARegion::v2d.

Referenced by buttons_main_region_layout(), blender::ed::vse::cursor_set_by_mouse_position(), blender::ed::vse::draw_cache_background(), blender::ed::vse::draw_cache_view(), ed_marker_box_select_exec(), ed_marker_move_modal(), ed_marker_select(), ED_markers_draw(), blender::ed::vse::mouse_over_key_get_from_strip(), blender::ed::vse::pixels_to_view_height(), blender::ed::vse::pixels_to_view_width(), blender::ed::vse::retiming_fake_key_frame_clicked(), blender::ed::vse::retiming_mouseover_key_get(), blender::ed::vse::sequencer_box_select_exec(), blender::ed::vse::sequencer_box_select_invoke(), blender::ed::vse::sequencer_clipboard_paste_exec(), blender::ed::vse::sequencer_retiming_box_select_exec(), blender::ed::vse::sequencer_select_exec(), blender::ed::vse::sequencer_select_handle_exec(), blender::ed::vse::sequencer_select_linked_pick_invoke(), sequencer_skip_for_handle_tweak(), blender::ed::vse::sequencer_slip_invoke(), blender::ed::vse::sequencer_slip_modal(), blender::ed::vse::sequencer_split_invoke(), blender::ed::vse::sequencer_text_cursor_set_invoke(), blender::ed::vse::sequencer_view_all_preview_exec(), blender::ed::vse::sequencer_view_selected_exec(), blender::ed::vse::sequencer_view_zoom_ratio_exec(), blender::ed::vse::sequencer_visible_strips_get(), blender::ed::vse::slip_data_init(), blender::ed::vse::strip_select_from_preview(), blender::ed::vse::text_edit_draw_cursor(), blender::ed::vse::timeline_draw_context_get(), blender::ed::vse::view_frame_preview_scope(), blender::ed::vse::view_ghost_border_exec(), and blender::ed::vse::vse_circle_select_exec().

◆ UI_view2d_fromcontext_rwin()

View2D * UI_view2d_fromcontext_rwin ( const bContext * C)

Same as UI_view2d_fromcontext, but it returns region-window. Utility for pull-downs or buttons.

Definition at line 1869 of file view2d.cc.

References BKE_area_find_region_type(), C, CTX_wm_area(), CTX_wm_region(), ARegion::regiontype, RGN_TYPE_WINDOW, and ARegion::v2d.

◆ UI_view2d_grid_resolution_x__frames_or_seconds()

float UI_view2d_grid_resolution_x__frames_or_seconds ( const View2D * v2d,
const Scene * scene )

◆ UI_view2d_grid_resolution_y__values()

float UI_view2d_grid_resolution_y__values ( const View2D * v2d,
int base )

◆ UI_view2d_listview_view_to_cell()

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 )

Get the 'cell' (row, column) that the given 2D-view coordinates (i.e. in 'tot' rect space) lie in.

Parameters
columnwidth,rowheightsize of each 'cell'
startx,startycoordinates (in 'tot' rect space) that the list starts from. This should be (0,0) for most views. However, for those where the starting row was offsetted (like for Animation Editor channel lists, to make the first entry more visible), these will be the min-coordinates of the first item.
viewx,viewy2D-coordinates (in 2D-view / 'tot' rect space) to get the cell for
r_column,r_rowThe 'coordinates' of the relevant 'cell'.

Definition at line 1621 of file view2d.cc.

References floorf.

Referenced by actkeys_find_list_element_at_position(), animchannels_channel_get(), animchannels_mouseclick_invoke(), nlaedit_strip_at_region_position(), and nlatracks_mouseclick_invoke().

◆ UI_view2d_mask_from_win()

void UI_view2d_mask_from_win ( const View2D * v2d,
rcti * r_mask )

◆ UI_view2d_mouse_in_scrollers()

char char UI_view2d_mouse_in_scrollers ( const ARegion * region,
const View2D * v2d,
const int xy[2] )

◆ UI_view2d_mouse_in_scrollers_ex()

char UI_view2d_mouse_in_scrollers_ex ( const ARegion * region,
const View2D * v2d,
const int xy[2],
int * r_scroll )

Check if mouse is within scrollers

Parameters
xyMouse coordinates in screen (not region) space.
r_scrollReturn argument for the mapped view2d scroll flag.
Returns
appropriate code for match.
  • 'h' = in horizontal scroller.
  • 'v' = in vertical scroller.
  • 0 = not in scroller.

References xy.

Referenced by area_actionzone_refresh_xy().

◆ UI_view2d_multi_grid_draw()

void UI_view2d_multi_grid_draw ( const View2D * v2d,
int colorid,
float step,
int level_size,
int totlevels )

◆ UI_view2d_offset()

void UI_view2d_offset ( View2D * v2d,
float xfac,
float yfac )

Simple pan function (0.0, 0.0) bottom left (0.5, 0.5) center (1.0, 1.0) top right.

Definition at line 1957 of file view2d.cc.

References BLI_rctf_size_x(), BLI_rctf_size_y(), View2D::cur, View2D::tot, UI_view2d_curRect_validate(), rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.

Referenced by ui_handle_panel_header(), and ui_handler_panel_region().

◆ UI_view2d_offset_y_snap_to_closest_page()

void UI_view2d_offset_y_snap_to_closest_page ( View2D * v2d)

Scrolls the view so that the upper edge is at a multiple of the page size.

Definition at line 1980 of file view2d.cc.

References BLI_rctf_size_y(), View2D::cur, roundf, UI_view2d_curRect_validate(), view2d_page_size_y(), rctf::ymax, and rctf::ymin.

Referenced by blender::ed::asset::shelf::region_init().

◆ UI_view2d_rect_in_scrollers()

char char char char UI_view2d_rect_in_scrollers ( const ARegion * region,
const View2D * v2d,
const rcti * rect )

References C, col, str, x, and y.

Referenced by ui_region_contains_rect_px().

◆ UI_view2d_rect_in_scrollers_ex()

char char char UI_view2d_rect_in_scrollers_ex ( const ARegion * region,
const View2D * v2d,
const rcti * rect,
int * r_scroll )

◆ UI_view2d_region_reinit()

void UI_view2d_region_reinit ( View2D * v2d,
short type,
int winx,
int winy )

Refresh and validation (of view rects).

Initialize all relevant View2D data (including view rects if first time) and/or refresh mask sizes after view resize.

  • For some of these presets, it is expected that the region will have defined some additional settings necessary for the customization of the 2D viewport to its requirements
  • This function should only be called from region init() callbacks, where it is expected that this is called before #UI_view2d_size_update(), as this one checks that the rects are properly initialized.

Definition at line 221 of file view2d.cc.

References View2D::align, View2D::alpha_hor, View2D::alpha_vert, View2D::cur, View2D::flag, float, View2D::keepofs, View2D::keeptot, View2D::keepzoom, View2D::max, View2D::maxzoom, View2D::min, View2D::minzoom, uiStyle::panelzoom, View2D::scroll, View2D::tot, UI_style_get(), ui_view2d_curRect_validate_resize(), V2D_ALIGN_NO_NEG_X, V2D_ALIGN_NO_NEG_Y, V2D_ALIGN_NO_POS_Y, V2D_COMMONVIEW_HEADER, V2D_COMMONVIEW_LIST, V2D_COMMONVIEW_PANELS_UI, V2D_COMMONVIEW_STACK, V2D_COMMONVIEW_STANDARD, V2D_IS_INIT, V2D_KEEPASPECT, V2D_KEEPTOT_BOUNDS, V2D_KEEPTOT_STRICT, V2D_KEEPZOOM, V2D_LIMITZOOM, V2D_LOCKOFS_Y, V2D_LOCKZOOM_X, V2D_LOCKZOOM_Y, V2D_SCROLL_HORIZONTAL_HIDE, V2D_SCROLL_VERTICAL_HIDE, view2d_masks(), view2d_totRect_set_resize(), View2D::winx, View2D::winy, rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.

Referenced by action_channel_region_init(), action_main_region_init(), clip_channels_region_init(), clip_preview_region_init(), console_main_region_init(), ED_region_header_init(), ED_region_panels_init(), file_main_region_draw(), file_main_region_init(), graph_channel_region_init(), graph_main_region_init(), hud_region_layout(), info_main_region_init(), nla_main_region_init(), nla_track_region_init(), blender::ed::space_node::node_main_region_init(), blender::ed::outliner::outliner_main_region_init(), blender::ed::asset::shelf::region_init(), script_main_region_init(), blender::ed::vse::sequencer_channel_region_init(), blender::ed::vse::sequencer_main_region_init(), blender::ed::vse::sequencer_preview_region_init(), blender::ed::spreadsheet::spreadsheet_main_region_init(), text_main_region_init(), and topbar_main_region_init().

◆ UI_view2d_region_to_view()

void UI_view2d_region_to_view ( const View2D * v2d,
float x,
float y,
float * r_view_x,
float * r_view_y )

Convert from screen/region space to 2d-View space

Parameters
x,ycoordinates to convert
r_view_x,r_view_yresultant coordinates

Definition at line 1668 of file view2d.cc.

References UI_view2d_region_to_view_x(), UI_view2d_region_to_view_y(), x, and y.

Referenced by actkeys_find_list_element_at_position(), blender::ed::space_node::add_reroute_exec(), animchannels_channel_get(), animchannels_mouseclick_invoke(), annotation_stroke_convertcoords(), blender::ed::transform::applyTimeSlide(), blender::ed::transform::applyTimeTranslate(), box_select_action(), box_select_anim_channels(), box_select_nla_strips(), blender::ed::vse::coords_region_view_align(), blender::ed::vse::cursor_set_by_mouse_position(), blender::ed::space_node::cut_links_exec(), dopesheet_select_channel_invoke(), ED_mask_mouse_pos(), ED_outliner_give_base_under_cursor(), ED_outliner_give_rna_under_cursor(), ED_space_image_color_sample(), ED_space_image_get_position(), file_attribute_column_type_find_isect(), file_box_select_find_last_selected(), file_highlight_set(), frame_from_event(), frame_from_event(), grab_clone_modal(), graphkeys_click_insert_invoke(), graphview_cursor_setprops(), image_sample_apply(), image_sample_line_exec(), image_view_zoom_in_invoke(), image_view_zoom_init(), image_view_zoom_invoke(), image_view_zoom_out_invoke(), blender::ed::space_node::is_event_over_node_or_socket(), blender::ed::vse::load_data_init_from_operator(), blender::ed::vse::mouse_frame_side(), blender::ed::vse::MouseCoords::MouseCoords(), blender::ed::space_node::mute_links_exec(), nlaedit_strip_at_region_position(), nlatracks_mouseclick_invoke(), blender::ed::space_node::node_add_collection_invoke(), blender::ed::space_node::node_add_color_invoke(), blender::ed::space_node::node_add_group_asset_invoke(), blender::ed::space_node::node_add_group_input_node_invoke(), blender::ed::space_node::node_add_group_invoke(), blender::ed::space_node::node_add_image_invoke(), blender::ed::space_node::node_add_import_node_invoke(), blender::ed::space_node::node_add_material_invoke(), blender::ed::space_node::node_add_object_invoke(), blender::ed::space_node::node_circleselect_exec(), blender::ed::space_node::node_clipboard_paste_invoke(), blender::ed::space_node::node_cursor(), blender::ed::space_node::node_draw_space(), blender::ed::space_node::node_find_frame_to_attach(), blender::ed::space_node::node_group_enter_exit_invoke(), blender::ed::space_node::node_join_in_frame_invoke(), blender::ed::space_node::node_link_invoke(), blender::ed::space_node::node_link_modal(), blender::ed::space_node::node_mouse_select(), blender::ed::space_node::node_resize_invoke(), blender::ed::space_node::node_resize_modal(), blender::ed::space_node::node_swap_group_asset_invoke(), blender::ed::outliner::outliner_box_select_invoke(), blender::ed::outliner::outliner_drop_find(), blender::ed::outliner::outliner_drop_insert_find(), blender::ed::outliner::outliner_highlight_update_invoke(), blender::ed::outliner::outliner_id_delete_invoke(), blender::ed::outliner::outliner_id_remap_invoke(), blender::ed::outliner::outliner_item_do_activate_from_cursor(), blender::ed::outliner::outliner_item_drag_drop_invoke(), blender::ed::outliner::outliner_item_openclose_invoke(), blender::ed::outliner::outliner_item_openclose_modal(), blender::ed::outliner::outliner_item_rename_find_hovered(), blender::ed::outliner::outliner_lib_reload_invoke(), blender::ed::outliner::outliner_lib_relocate_invoke(), blender::ed::outliner::outliner_operation_invoke(), paint_2d_stroke(), paint_2d_transform_mouse(), paintcurve_cursor_invoke(), select_invoke(), blender::ed::vse::sequencer_box_select_invoke(), blender::ed::vse::sequencer_clipboard_paste_exec(), blender::ed::vse::sequencer_file_drop_channel_frame_set(), blender::ed::vse::sequencer_main_cursor(), sequencer_sample_apply(), blender::ed::vse::sequencer_select_linked_pick_invoke(), blender::ed::vse::sequencer_set_2d_cursor_invoke(), sequencer_skip_for_handle_tweak(), blender::ed::vse::sequencer_slip_invoke(), blender::ed::vse::sequencer_slip_modal(), blender::ed::vse::sequencer_split_invoke(), blender::ed::vse::sequencer_text_cursor_set_invoke(), stitch_select(), blender::ed::vse::strip_select_from_preview(), blender::ed::vse::strip_under_mouse_get(), blender::ed::transform::transform_convert_frame_side_dir_get(), blender::ed::vse::update_overlay_strip_position_data(), uv_circle_select_exec(), uv_rip_invoke(), uv_sculpt_stroke_apply(), uv_sculpt_stroke_init(), uv_select_edge_ring_invoke(), uv_select_invoke(), uv_select_linked_internal(), uv_select_loop_invoke(), uv_set_2d_cursor_invoke(), uv_shortest_path_pick_invoke(), view_zoomdrag_invoke(), view_zoomin_invoke(), view_zoomout_invoke(), and blender::ed::vse::vse_circle_select_exec().

◆ UI_view2d_region_to_view_rctf()

◆ UI_view2d_region_to_view_x()

◆ UI_view2d_region_to_view_y()

◆ UI_view2d_scale_get()

void UI_view2d_scale_get ( const View2D * v2d,
float * r_x,
float * r_y )

Calculate the scale per-axis of the drawing-area

Is used to inverse correct drawing of icons, etc. that need to follow view but not be affected by scale

Parameters
r_x,r_yscale on each axis

Definition at line 1912 of file view2d.cc.

References UI_view2d_scale_get_x(), and UI_view2d_scale_get_y().

Referenced by blender::ed::transform::createTransGraphEditData(), draw_fcurve_samples(), draw_tracks_motion_and_error_curves(), ED_markers_draw(), ED_mask_pixelspace_factor(), ED_uvedit_nearest_uv_multi(), blender::ed::space_node::node_draw_collapsed(), and blender::ed::space_node::node_draw_zones_and_frames().

◆ UI_view2d_scale_get_inverse()

void UI_view2d_scale_get_inverse ( const View2D * v2d,
float * r_x,
float * r_y )

◆ UI_view2d_scale_get_x()

◆ UI_view2d_scale_get_y()

◆ UI_view2d_scroller_size_get()

void UI_view2d_scroller_size_get ( const View2D * v2d,
bool mapped,
float * r_x,
float * r_y )

Get scroll-bar sizes of the current 2D view. The size will be zero if the view has its scroll-bars disabled.

Parameters
mappedwhether to use view2d_scroll_mapped which changes flags

Definition at line 1887 of file view2d.cc.

References View2D::alpha_hor, View2D::alpha_vert, View2D::scroll, V2D_SCROLL_HANDLE_HEIGHT, V2D_SCROLL_HANDLE_WIDTH, V2D_SCROLL_HEIGHT, V2D_SCROLL_HORIZONTAL, V2D_SCROLL_HORIZONTAL_HANDLES, V2D_SCROLL_MIN_WIDTH, V2D_SCROLL_VERTICAL, V2D_SCROLL_VERTICAL_HANDLES, V2D_SCROLL_WIDTH, and view2d_scroll_mapped().

Referenced by ED_area_type_hud_ensure(), and view2d_masks().

◆ UI_view2d_scrollers_draw()

void UI_view2d_scrollers_draw ( View2D * v2d,
const rcti * mask_custom )

Draw scroll-bars in the given 2D-region.

Definition at line 1504 of file view2d.cc.

References View2D::alpha_hor, View2D::alpha_vert, BLI_rcti_size_x(), BLI_rcti_size_y(), View2DScrollers::hor, View2DScrollers::hor_max, View2DScrollers::hor_min, uiWidgetColors::inner, uiWidgetColors::item, View2D::keepzoom, uiWidgetColors::outline, View2D::scroll, View2D::scroll_ui, state, TH_BACK, bTheme::tui, UI_draw_widget_scroll(), UI_GetTheme(), UI_GetThemeColor4ubv(), UI_SCROLL_ARROWS, UI_SCROLL_PRESSED, V2D_LOCKZOOM_X, V2D_LOCKZOOM_Y, V2D_SCROLL_H_ACTIVE, V2D_SCROLL_HANDLE_SIZE_HOTSPOT, V2D_SCROLL_HORIZONTAL, V2D_SCROLL_HORIZONTAL_HANDLES, V2D_SCROLL_MIN_ALPHA, V2D_SCROLL_V_ACTIVE, V2D_SCROLL_VERTICAL, V2D_SCROLL_VERTICAL_HANDLES, View2DScrollers::vert, View2DScrollers::vert_max, View2DScrollers::vert_min, view2d_scroll_mapped(), view2d_scrollers_calc(), ThemeUI::wcol_scroll, ThemeUI::widget_emboss, rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.

Referenced by action_main_region_draw_overlay(), console_main_region_draw(), dopesheet_region_draw(), blender::ed::spreadsheet::draw_spreadsheet_in_region(), blender::ed::vse::draw_timeline_seq_display(), ED_region_panels_draw(), file_main_region_draw(), graph_channel_region_draw(), graph_main_region_draw_overlay(), graph_region_draw(), info_main_region_draw(), nla_main_region_draw_overlay(), nla_track_region_draw(), blender::ed::space_node::node_draw_space(), blender::ed::outliner::outliner_main_region_draw(), and blender::ed::asset::shelf::region_draw().

◆ UI_view2d_smooth_view()

◆ UI_view2d_sync()

◆ UI_view2d_text_cache_add()

◆ UI_view2d_text_cache_add_rectf()

◆ UI_view2d_text_cache_draw()

◆ UI_view2d_totRect_set()

◆ UI_view2d_view_ortho()

void UI_view2d_view_ortho ( const View2D * v2d)

Set view matrices to use 'cur' rect as viewing frame for View2D drawing.

Definition at line 1095 of file view2d.cc.

References BLI_rctf_size_x(), BLI_rctf_size_y(), BLI_rctf_translate(), BLI_rcti_size_x(), BLI_rcti_size_y(), View2D::cur, eps, View2D::flag, floorf, View2D::mask, V2D_PIXELOFS_X, V2D_PIXELOFS_Y, view2d_map_cur_using_mask(), wmOrtho2(), rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.

Referenced by action_channel_region_draw(), action_main_region_draw(), clip_channels_region_draw(), clip_draw_dopesheet_main(), clip_draw_graph(), console_main_region_draw(), dopesheet_region_draw(), blender::ed::vse::draw_channels(), blender::ed::vse::draw_icon_centered(), blender::ed::outliner::draw_outliner(), blender::ed::vse::draw_seq_strips(), blender::ed::vse::draw_seq_timeline_channels(), blender::ed::vse::draw_timeline_seq(), blender::ed::vse::draw_timeline_seq_display(), ED_region_header_layout(), ED_region_panels_draw(), ED_region_panels_layout_ex(), file_main_region_draw(), graph_channel_region_draw(), graph_main_region_draw(), graph_region_draw(), hud_region_draw(), image_main_region_draw(), info_main_region_draw(), nla_main_region_draw(), nla_track_region_draw(), blender::ed::space_node::node_draw_space(), blender::ed::vse::preview_draw_begin(), blender::ed::asset::shelf::region_draw(), region_draw_blocks_in_view2d(), blender::ed::asset::shelf::region_layout(), script_main_region_draw(), blender::ed::vse::sequencer_retiming_speed_draw(), blender::ed::space_node::snode_setup_v2d(), and view2d_draw_lines_internal().

◆ UI_view2d_view_orthoSpecial()

void UI_view2d_view_orthoSpecial ( ARegion * region,
View2D * v2d,
bool xaxis )

Set view matrices to only use one axis of 'cur' only

Parameters
xaxisif non-zero, only use cur x-axis, otherwise use cur-yaxis (mostly this will be used for x).

Definition at line 1136 of file view2d.cc.

References view2d_map_cur_using_mask(), ARegion::winx, ARegion::winy, wmOrtho2(), rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.

Referenced by action_main_region_draw(), action_main_region_draw_overlay(), blender::ed::vse::draw_timeline_markers(), graph_main_region_draw(), and nla_main_region_draw().

◆ UI_view2d_view_restore()

◆ UI_view2d_view_to_region()

◆ UI_view2d_view_to_region_clip()

bool UI_view2d_view_to_region_clip ( const View2D * v2d,
float x,
float y,
int * r_region_x,
int * r_region_y )

Convert from 2d-View space to screen/region space

Note
Coordinates are clamped to lie within bounds of region
Parameters
x,yCoordinates to convert.
r_region_x,r_region_yResultant coordinates.

Definition at line 1702 of file view2d.cc.

References BLI_rctf_size_x(), BLI_rctf_size_y(), BLI_rcti_size_x(), BLI_rcti_size_y(), View2D::cur, View2D::mask, V2D_IS_CLIPPED, x, rctf::xmin, rcti::xmin, y, rctf::ymin, and rcti::ymin.

Referenced by blender::ed::vse::do_lasso_select_is_origin_inside(), do_lasso_select_mesh_uv_is_point_inside(), blender::ed::space_node::do_lasso_select_node(), blender::ed::vse::do_lasso_select_timeline(), gpencil_point_to_xy(), mouse_select_knot(), nearest_fcurve_vert_store(), and UI_view2d_text_cache_add().

◆ UI_view2d_view_to_region_fl()

◆ UI_view2d_view_to_region_m4()

◆ UI_view2d_view_to_region_rcti()

void UI_view2d_view_to_region_rcti ( const View2D * v2d,
const rctf * rect_src,
rcti * rect_dst )

◆ UI_view2d_view_to_region_rcti_clip()

bool UI_view2d_view_to_region_rcti_clip ( const View2D * v2d,
const rctf * rect_src,
rcti * rect_dst )

◆ UI_view2d_view_to_region_segment_clip()

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] )

◆ UI_view2d_view_to_region_x()

◆ UI_view2d_view_to_region_y()

◆ UI_view2d_zoom_cache_reset()

void UI_view2d_zoom_cache_reset ( )

◆ VIEW2D_GGT_navigate_impl()