41 #define MIN_MAJOR_LINE_DISTANCE (U.v2d_min_gridsize * UI_DPI_FAC)
50 if (
IS_EQF(view_width, 0.0f)) {
51 return possible_distances[0];
54 const float pixels_per_view_unit = pixel_width / view_width;
56 for (
uint i = 0; i < amount; i++) {
57 const float distance = possible_distances[i];
62 return possible_distances[amount - 1];
66 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000};
69 5, 10, 20, 50, 100, 200, 500, 1000,
70 2000, 5000, 10000, 20000, 50000, 100000};
98 const double fps =
FPS;
102 for (
int step = 1; step < fps; step *= 2) {
103 possible_distances.
append(step);
105 possible_distances.
append(fps);
106 possible_distances.
append(2 * fps);
107 possible_distances.
append(5 * fps);
108 possible_distances.
append(10 * fps);
109 possible_distances.
append(30 * fps);
110 possible_distances.
append(60 * fps);
111 possible_distances.
append(2 * 60 * fps);
112 possible_distances.
append(5 * 60 * fps);
113 possible_distances.
append(10 * 60 * fps);
114 possible_distances.
append(30 * 60 * fps);
115 possible_distances.
append(60 * 60 * fps);
118 possible_distances.
size(),
139 if (region_start >= region_end) {
151 if (region_start <= *r_first && region_end >= *r_first) {
164 const rcti *rect_mask,
171 if (direction ==
'v') {
194 if (
U.pixelsize > 1.0f) {
210 if (direction ==
'v') {
212 const float xpos = first + i * lines->
distance;
219 const float ypos = first + i * lines->
distance;
241 float major_distance,
242 bool display_minor_lines,
246 uchar major_color[3];
249 major_lines.
distance = major_distance;
254 if (display_minor_lines) {
255 uchar minor_color[3];
258 minor_lines.
distance = major_distance;
259 minor_lines.
offset = major_distance / 2.0f;
268 void (*)(
void *
user_data,
float v2d_pos,
float v2d_step,
uint max_len,
char *r_str);
275 void *to_string_data,
308 const float xmin = rect->
xmin;
309 const float xmax = rect->
xmax;
316 to_string(to_string_data, start, 0,
sizeof(text), text);
317 const float left_text_width =
BLF_width(font_id, text, strlen(text));
319 const float right_text_width =
BLF_width(font_id, text, strlen(text));
320 const float max_text_width =
max_ff(left_text_width, right_text_width);
322 draw_frequency =
ceil((
float)
steps / max_label_count);
325 if (draw_frequency != 0) {
326 const int start_index =
abs((
int)(start /
distance)) % draw_frequency;
327 for (
uint i = start_index; i <
steps; i += draw_frequency) {
328 const float xpos_view = start + i *
distance;
331 const float text_width =
BLF_width(font_id, text, strlen(text));
333 if (xpos_region - text_width / 2.0f >= xmin && xpos_region + text_width / 2.0f <= xmax) {
334 BLF_draw_default(xpos_region - text_width / 2.0f, ypos, 0.0f, text,
sizeof(text));
346 float display_offset,
349 void *to_string_data,
382 const float shadow_color[4] = {0.0f, 0.0f, 0.0f, 1.0f};
386 const float x_offset = 8.0f;
388 const float ymin = rect->
ymin;
389 const float ymax = rect->
ymax;
390 const float y_offset = (
BLF_height(font_id,
"0", 1) / 2.0f) -
U.pixelsize;
393 const float ypos_view = start + i *
distance;
398 if (ypos_region - y_offset >= ymin && ypos_region + y_offset <= ymax) {
417 void *
user_data,
float v2d_pos,
float v2d_step,
uint max_len,
char *r_str)
421 int brevity_level = 0;
427 r_str, max_len, brevity_level, v2d_pos / (
float)
FPS,
FPS,
U.timecode_style);
433 if (v2d_step >= 1.0f) {
436 else if (v2d_step >= 0.1f) {
439 else if (v2d_step >= 0.01f) {
452 bool display_seconds)
454 if (display_seconds) {
472 v2d, major_line_distance, display_minor_lines && (major_line_distance > 1),
'v');
489 bool display_minor_lines)
493 v2d, major_line_distance, display_minor_lines && (major_line_distance > 1),
'v');
498 bool display_seconds,
499 bool display_minor_lines)
501 if (display_seconds) {
511 bool display_seconds)
513 if (display_seconds) {
573 const struct rcti *rect,
575 bool display_seconds,
578 if (display_seconds) {
588 const struct rcti *rect,
590 bool display_seconds,
593 if (display_seconds) {
float BLF_height(int fontid, const char *str, size_t str_len) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void BLF_shadow_offset(int fontid, int x, int y)
void BLF_shadow(int fontid, int level, const float rgba[4]) ATTR_NONNULL(3)
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_batch_draw_begin(void)
void BLF_enable(int fontid, int option)
void BLF_batch_draw_end(void)
void BLF_draw_default(float x, float y, float z, const char *str, size_t str_len) ATTR_NONNULL()
MINLINE float max_ff(float a, float b)
BLI_INLINE int BLI_rcti_size_y(const struct rcti *rct)
BLI_INLINE int BLI_rcti_size_x(const struct rcti *rct)
BLI_INLINE float BLI_rctf_size_x(const struct rctf *rct)
BLI_INLINE float BLI_rctf_size_y(const struct rctf *rct)
size_t BLI_snprintf(char *__restrict dst, size_t maxncpy, const char *__restrict format,...) ATTR_NONNULL(1
size_t BLI_timecode_string_from_time(char *str, size_t maxncpy, int brevity_level, float time_seconds, double fps, short timecode_style) ATTR_NONNULL()
void GPU_matrix_pop_projection(void)
void GPU_matrix_push_projection(void)
@ GPU_SHADER_3D_POLYLINE_UNIFORM_COLOR
@ GPU_SHADER_2D_UNIFORM_COLOR
void GPU_viewport_size_get_f(float coords[4])
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 a value between a minimum and a maximum Vector Perform vector math operation Invert a color
void UI_GetThemeColor3ubv(int colorid, unsigned char col[3])
void UI_FontThemeColor(int fontid, int colorid)
void UI_GetThemeColorShade3ubv(int colorid, int offset, unsigned char col[3])
float UI_view2d_view_to_region_x(const struct View2D *v2d, float x)
float UI_view2d_view_to_region_y(const struct View2D *v2d, float y)
void UI_view2d_view_ortho(const struct View2D *v2d)
float UI_view2d_scale_get_y(const struct View2D *v2d)
float UI_view2d_region_to_view_x(const struct View2D *v2d, float x)
float UI_view2d_scale_get_x(const struct View2D *v2d)
float UI_view2d_region_to_view_y(const struct View2D *v2d, float y)
void append(const T &value)
SyclQueue void void size_t num_bytes void
static const char * to_string(const Interpolation &interp)
ccl_device_inline float3 ceil(const float3 &a)
T distance(const T &a, const T &b)
static void view_to_string__time(void *user_data, float v2d_pos, float v2d_step, uint max_len, char *r_str)
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 draw_horizontal_scale_indicators(const ARegion *region, const View2D *v2d, float distance, const rcti *rect, PositionToString to_string, void *to_string_data, int colorid)
void UI_view2d_draw_lines_x__values(const View2D *v2d)
static void view_to_string__value(void *UNUSED(user_data), float v2d_pos, float v2d_step, uint max_len, char *r_str)
static float select_major_distance(const float *possible_distances, uint amount, float pixel_width, float view_width)
static void UI_view2d_draw_scale_x__values(const ARegion *region, const View2D *v2d, const rcti *rect, int colorid)
#define MIN_MAJOR_LINE_DISTANCE
void UI_view2d_draw_lines_x__frames_or_seconds(const View2D *v2d, const Scene *scene, bool display_seconds)
static float view2d_major_step_x__continuous(const View2D *v2d)
static void view2d_draw_lines(const View2D *v2d, float major_distance, bool display_minor_lines, char direction)
float UI_view2d_grid_resolution_x__frames_or_seconds(const struct View2D *v2d, const struct Scene *scene, bool display_seconds)
float UI_view2d_grid_resolution_y__values(const struct View2D *v2d)
void UI_view2d_draw_lines_y__values(const View2D *v2d)
static const float discrete_value_scales[]
static float view2d_major_step_x__time(const View2D *v2d, const Scene *scene)
void UI_view2d_draw_scale_x__discrete_frames_or_seconds(const struct ARegion *region, const struct View2D *v2d, const struct rcti *rect, const struct Scene *scene, bool display_seconds, int colorid)
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__discrete_values(const View2D *v2d, bool display_minor_lines)
void UI_view2d_draw_lines_x__discrete_time(const View2D *v2d, const Scene *scene, bool display_minor_lines)
static void UI_view2d_draw_scale_x__discrete_time(const ARegion *region, const View2D *v2d, const rcti *rect, const Scene *scene, int colorid)
void UI_view2d_draw_scale_x__frames_or_seconds(const struct ARegion *region, const struct View2D *v2d, const struct rcti *rect, const struct Scene *scene, bool display_seconds, int colorid)
void UI_view2d_draw_scale_y__values(const ARegion *region, const View2D *v2d, const rcti *rect, int colorid)
static void view2d_draw_lines_internal(const View2D *v2d, const ParallelLinesSet *lines, const uchar color[3], char direction)
static void view_to_string__frame_number(void *UNUSED(user_data), float v2d_pos, float UNUSED(v2d_step), uint max_len, char *r_str)
void UI_view2d_draw_scale_y__block(const ARegion *region, const View2D *v2d, const rcti *rect, int colorid)
static void UI_view2d_draw_scale_x__discrete_values(const ARegion *region, const View2D *v2d, const rcti *rect, int colorid)
static float view2d_major_step_y__continuous(const View2D *v2d)
static uint view2d_major_step_x__discrete(const View2D *v2d)
static void draw_parallel_lines(const ParallelLinesSet *lines, const rctf *rect, const rcti *rect_mask, const uchar color[3], char direction)
static const float continuous_value_scales[]
void(*)(void *user_data, float v2d_pos, float v2d_step, uint max_len, char *r_str) PositionToString
static void get_parallel_lines_draw_steps(const ParallelLinesSet *lines, float region_start, float region_end, float *r_first, uint *r_steps)
void wmOrtho2_region_pixelspace(const ARegion *region)