|
Blender V5.0
|
#include <algorithm>#include <cfloat>#include <cmath>#include <cstring>#include "DNA_scene_types.h"#include "DNA_userdef_types.h"#include "BLI_math_base.h"#include "BLI_rect.h"#include "BLI_string_utf8.h"#include "BLI_timecode.h"#include "BLI_utildefines.h"#include "BLI_vector.hh"#include "GPU_immediate.hh"#include "GPU_matrix.hh"#include "GPU_state.hh"#include "WM_api.hh"#include "BLF_api.hh"#include "UI_resources.hh"#include "UI_view2d.hh"Go to the source code of this file.
Classes | |
| struct | ParallelLinesSet |
Macros | |
| #define | MIN_MAJOR_LINE_DISTANCE (U.v2d_min_gridsize * UI_SCALE_FAC) |
Typedefs | |
| using | PositionToString |
Functions | |
| static int | get_divisor (const int distance) |
| static int | calculate_grid_step (const int base, const float pixel_width, const float view_width) |
| static float | calculate_grid_step_subframes (const int base, const float pixel_width, const float view_width) |
| static void | get_parallel_lines_draw_steps (const ParallelLinesSet *lines, float region_start, float region_end, float *r_first, uint *r_steps) |
| static void | draw_parallel_lines (const ParallelLinesSet *lines, const rctf *rect, const rcti *rect_mask, const uchar color[3], char direction) |
| static void | view2d_draw_lines_internal (const View2D *v2d, const ParallelLinesSet *lines, const uchar color[3], char direction) |
| static void | view2d_draw_lines (const View2D *v2d, const float major_distance, const bool display_minor_lines, const char direction) |
| static void | draw_horizontal_scale_indicators (const ARegion *region, const View2D *v2d, float distance, const rcti *rect, PositionToString to_string, void *to_string_data, int colorid) |
| static void | draw_vertical_scale_indicators (const ARegion *region, const View2D *v2d, float distance, float display_offset, const rcti *rect, PositionToString to_string, void *to_string_data, int colorid) |
| static void | view_to_string__frame_number (void *, float v2d_pos, float, char *r_str, uint str_maxncpy) |
| static void | view_to_string__time (void *user_data, float v2d_pos, float v2d_step, char *r_str, uint str_maxncpy) |
| static void | view_to_string__value (void *, float v2d_pos, float v2d_step, char *r_str, uint str_maxncpy) |
| 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, const int base) |
| void | UI_view2d_draw_lines_x__discrete_values (const View2D *v2d, const int base, bool display_minor_lines) |
| void | UI_view2d_draw_lines_x__values (const View2D *v2d, const int base) |
| void | UI_view2d_draw_lines_y__values (const View2D *v2d, const int base) |
| void | UI_view2d_draw_lines_x__discrete_time (const View2D *v2d, const 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) |
| void | UI_view2d_draw_scale_y__values (const ARegion *region, const View2D *v2d, const rcti *rect, int colorid, const 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, const 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, const int base) |
Variables | |
| constexpr int | subframe_range = 100 |
| #define MIN_MAJOR_LINE_DISTANCE (U.v2d_min_gridsize * UI_SCALE_FAC) |
Definition at line 38 of file view2d_draw.cc.
Referenced by calculate_grid_step(), and view2d_draw_lines().
| using PositionToString |
Definition at line 289 of file view2d_draw.cc.
Calculates the distance in frames between major lines. The lowest value it can return is 1.
| base | Defines how the step is calculated. The returned step is either a full fraction or a multiple of that number. |
Definition at line 85 of file view2d_draw.cc.
References BLI_assert, distance(), get_divisor(), IS_EQF, MIN_MAJOR_LINE_DISTANCE, and result.
Referenced by calculate_grid_step_subframes(), UI_view2d_draw_lines_x__discrete_time(), UI_view2d_draw_lines_x__discrete_values(), UI_view2d_draw_scale_x__discrete_frames_or_seconds(), and UI_view2d_draw_scale_x__frames_or_seconds().
|
static |
Definition at line 115 of file view2d_draw.cc.
References calculate_grid_step(), distance(), and subframe_range.
Referenced by UI_view2d_draw_lines_x__values(), UI_view2d_draw_lines_y__values(), UI_view2d_draw_scale_x__frames_or_seconds(), UI_view2d_draw_scale_y__values(), UI_view2d_grid_resolution_x__frames_or_seconds(), and UI_view2d_grid_resolution_y__values().
|
static |
Definition at line 292 of file view2d_draw.cc.
References abs, BLF_batch_draw_begin(), BLF_batch_draw_end(), BLF_draw_default(), BLF_set_default(), BLF_width(), BLI_rcti_size_x(), ceil, distance(), ParallelLinesSet::distance, get_parallel_lines_draw_steps(), GPU_matrix_pop_projection(), GPU_matrix_push_projection(), i, View2D::mask, max_ff(), ParallelLinesSet::offset, to_string(), UI_FontThemeColor(), UI_SCALE_FAC, UI_view2d_region_to_view_x(), UI_view2d_scale_get_x(), UI_view2d_view_to_region_x(), UNLIKELY, wmOrtho2_region_pixelspace(), rcti::xmax, rcti::xmin, and rcti::ymin.
Referenced by UI_view2d_draw_scale_x__discrete_frames_or_seconds(), and UI_view2d_draw_scale_x__frames_or_seconds().
|
static |
| rect_mask | Region size in pixels. |
Definition at line 166 of file view2d_draw.cc.
References BLI_assert, BLI_rcti_size_x(), BLI_rcti_size_y(), ParallelLinesSet::distance, get_parallel_lines_draw_steps(), GPU_PRIM_LINES, GPU_SHADER_3D_POLYLINE_UNIFORM_COLOR, GPU_SHADER_3D_UNIFORM_COLOR, GPU_vertformat_attr_add(), GPU_viewport_size_get_f(), i, immBegin(), immBindBuiltinProgram(), immEnd(), immUnbindProgram(), immUniform1f(), immUniform2fv(), immUniformColor3ubv(), immVertex2f(), immVertexFormat(), pos, U, UNLIKELY, rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.
Referenced by view2d_draw_lines_internal().
|
static |
Definition at line 366 of file view2d_draw.cc.
References BLF_batch_draw_begin(), BLF_batch_draw_end(), BLF_disable(), BLF_draw_default(), BLF_enable(), BLF_height(), BLF_set_default(), BLF_SHADOW, BLF_shadow(), BLF_shadow_offset(), BLI_rcti_size_y(), distance(), ParallelLinesSet::distance, get_parallel_lines_draw_steps(), GPU_matrix_pop_projection(), GPU_matrix_push_projection(), i, View2D::mask, ParallelLinesSet::offset, Outline, TH_BACK, to_string(), U, UI_FontThemeColor(), UI_GetThemeColor4fv(), UI_SCALE_FAC, UI_view2d_region_to_view_y(), UI_view2d_scale_get_y(), UI_view2d_view_to_region_y(), UNLIKELY, wmOrtho2_region_pixelspace(), rcti::xmin, rcti::ymax, and rcti::ymin.
Referenced by UI_view2d_draw_scale_y__values().
|
static |
Definition at line 47 of file view2d_draw.cc.
References ARRAY_SIZE, distance(), i, and result.
Referenced by calculate_grid_step(), and view2d_draw_lines().
|
static |
Definition at line 137 of file view2d_draw.cc.
References BLI_assert, ceilf, ParallelLinesSet::distance, floorf, and ParallelLinesSet::offset.
Referenced by draw_horizontal_scale_indicators(), draw_parallel_lines(), and draw_vertical_scale_indicators().
| void UI_view2d_draw_lines_x__discrete_frames_or_seconds | ( | const View2D * | v2d, |
| const Scene * | scene, | ||
| bool | display_seconds, | ||
| bool | display_minor_lines ) |
Definition at line 528 of file view2d_draw.cc.
References round_db_to_int(), UI_view2d_draw_lines_x__discrete_time(), and UI_view2d_draw_lines_x__discrete_values().
Referenced by action_main_region_draw(), dopesheet_region_draw(), blender::ed::vse::draw_timeline_grid(), and nla_main_region_draw().
| void UI_view2d_draw_lines_x__discrete_time | ( | const View2D * | v2d, |
| const int | base, | ||
| bool | display_minor_lines ) |
Definition at line 518 of file view2d_draw.cc.
References BLI_rctf_size_x(), BLI_rcti_size_x(), calculate_grid_step(), View2D::cur, View2D::mask, and view2d_draw_lines().
Referenced by UI_view2d_draw_lines_x__discrete_frames_or_seconds(), and UI_view2d_draw_lines_x__frames_or_seconds().
| void UI_view2d_draw_lines_x__discrete_values | ( | const View2D * | v2d, |
| const int | base, | ||
| bool | display_minor_lines ) |
Definition at line 494 of file view2d_draw.cc.
References BLI_rctf_size_x(), BLI_rcti_size_x(), calculate_grid_step(), View2D::cur, View2D::mask, and view2d_draw_lines().
Referenced by UI_view2d_draw_lines_x__discrete_frames_or_seconds().
| void UI_view2d_draw_lines_x__frames_or_seconds | ( | const View2D * | v2d, |
| const Scene * | scene, | ||
| bool | display_seconds ) |
Definition at line 543 of file view2d_draw.cc.
References round_db_to_int(), UI_view2d_draw_lines_x__discrete_time(), and UI_view2d_draw_lines_x__values().
Referenced by graph_main_region_draw().
| void UI_view2d_draw_lines_x__values | ( | const View2D * | v2d, |
| const int | base ) |
Definition at line 504 of file view2d_draw.cc.
References BLI_rctf_size_x(), BLI_rcti_size_x(), calculate_grid_step_subframes(), View2D::cur, View2D::mask, and view2d_draw_lines().
Referenced by clip_draw_graph(), graph_main_region_draw(), and UI_view2d_draw_lines_x__frames_or_seconds().
| void UI_view2d_draw_lines_y__values | ( | const View2D * | v2d, |
| int | base ) |
Draw horizontal lines.
| base | Defines 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().
| 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().
| 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().
| void UI_view2d_draw_scale_y__values | ( | const ARegion * | region, |
| const View2D * | v2d, | ||
| const rcti * | rect, | ||
| int | colorid, | ||
| int | base ) |
Scale indicator text drawing.
Definition at line 559 of file view2d_draw.cc.
References BLI_rctf_size_y(), BLI_rcti_size_y(), calculate_grid_step_subframes(), View2D::cur, draw_vertical_scale_indicators(), View2D::mask, step, and view_to_string__value().
Referenced by graph_main_region_draw_overlay(), and graph_region_draw().
Definition at line 478 of file view2d_draw.cc.
References BLI_rctf_size_x(), BLI_rcti_size_x(), calculate_grid_step_subframes(), View2D::cur, View2D::mask, and round_db_to_int().
Referenced by blender::ed::transform::initTranslation().
Definition at line 485 of file view2d_draw.cc.
References BLI_rctf_size_y(), BLI_rcti_size_y(), calculate_grid_step_subframes(), View2D::cur, and View2D::mask.
Referenced by blender::ed::transform::initTranslation().
|
static |
Definition at line 245 of file view2d_draw.cc.
References BLI_rctf_size_x(), BLI_rcti_size_x(), View2D::cur, ParallelLinesSet::distance, get_divisor(), View2D::mask, MIN_MAJOR_LINE_DISTANCE, ParallelLinesSet::offset, round_fl_to_int(), subframe_range, TH_GRID, UI_GetThemeColor3ubv(), UI_GetThemeColorShade3ubv(), and view2d_draw_lines_internal().
Referenced by UI_view2d_draw_lines_x__discrete_time(), UI_view2d_draw_lines_x__discrete_values(), UI_view2d_draw_lines_x__values(), and UI_view2d_draw_lines_y__values().
|
static |
Definition at line 234 of file view2d_draw.cc.
References View2D::cur, draw_parallel_lines(), GPU_matrix_pop_projection(), GPU_matrix_push_projection(), View2D::mask, and UI_view2d_view_ortho().
Referenced by view2d_draw_lines().
|
static |
Definition at line 434 of file view2d_draw.cc.
References BLI_snprintf_utf8().
Referenced by UI_view2d_draw_scale_x__discrete_frames_or_seconds().
|
static |
Definition at line 440 of file view2d_draw.cc.
References BLI_timecode_string_from_time(), U, and USER_TIMECODE_MINIMAL.
Referenced by UI_view2d_draw_scale_x__discrete_frames_or_seconds(), and UI_view2d_draw_scale_x__frames_or_seconds().
|
static |
Definition at line 458 of file view2d_draw.cc.
References BLI_snprintf_utf8(), and UI_SCALE_FAC.
Referenced by UI_view2d_draw_scale_x__frames_or_seconds(), and UI_view2d_draw_scale_y__values().
|
constexpr |
Definition at line 43 of file view2d_draw.cc.
Referenced by calculate_grid_step_subframes(), and view2d_draw_lines().