(kivutar) Add inertia
This commit is contained in:
parent
f8bf5d1827
commit
8b791c64a1
|
@ -273,8 +273,8 @@ static void glui_render(void)
|
|||
(menu_input->pointer.y - glui->line_height + menu->scroll_y - 16)
|
||||
/ glui->line_height;
|
||||
|
||||
if (menu_input->pointer.dragging)
|
||||
menu->scroll_y -= menu_input->pointer.dy;
|
||||
menu->scroll_y -= menu_input->pointer.accel / 60.0;
|
||||
menu_input->pointer.accel = menu_input->pointer.accel * 0.96;
|
||||
}
|
||||
|
||||
if (settings->menu.mouse.enable)
|
||||
|
|
|
@ -895,11 +895,17 @@ static int menu_input_pointer_post_iterate(menu_file_list_cbs_t *cbs,
|
|||
else if (abs(menu_input->pointer.x - menu_input->pointer.start_x) > 3
|
||||
|| abs(menu_input->pointer.y - menu_input->pointer.start_y) > 3)
|
||||
{
|
||||
float s;
|
||||
menu_input->pointer.dragging = true;
|
||||
menu_input->pointer.dx = menu_input->pointer.x - menu_input->pointer.old_x;
|
||||
menu_input->pointer.dy = menu_input->pointer.y - menu_input->pointer.old_y;
|
||||
menu_input->pointer.old_x = menu_input->pointer.x;
|
||||
menu_input->pointer.old_y = menu_input->pointer.y;
|
||||
|
||||
s = menu_input->pointer.dy / disp->animation->delta_time * 1000000.0;
|
||||
menu_input->pointer.accel = (menu_input->pointer.accel0 + menu_input->pointer.accel1 + s) / 3;
|
||||
menu_input->pointer.accel0 = menu_input->pointer.accel1;
|
||||
menu_input->pointer.accel1 = menu_input->pointer.accel;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -151,6 +151,9 @@ typedef struct menu_input
|
|||
int16_t old_y;
|
||||
int16_t start_x;
|
||||
int16_t start_y;
|
||||
float accel;
|
||||
float accel0;
|
||||
float accel1;
|
||||
bool pressed[2];
|
||||
bool oldpressed[2];
|
||||
bool dragging;
|
||||
|
|
Loading…
Reference in New Issue