The open source OpenXR runtime
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

st/gui: Add infinitely fast trigger finger in remote UI

Makes it easier to pass interactive action CTS test.

authored by

Jakob Bornecrantz and committed by
Simon Zeni
4156ea07 0ed5c94b

+15 -2
+15 -2
src/xrt/state_trackers/gui/gui_scene_remote.c
··· 40 40 struct r_remote_data reset; 41 41 struct r_remote_data data; 42 42 43 + // Was the left trigger pushed last frame? 44 + bool left_trigger_was_pressed_last_frame; 45 + 46 + // Was the right trigger pushed last frame? 47 + bool right_trigger_was_pressed_last_frame; 48 + 43 49 bool cheat_menu; 44 50 45 51 char address[1024]; ··· 107 113 } 108 114 109 115 static void 110 - handle_input(struct r_remote_controller_data *d) 116 + handle_input(struct r_remote_controller_data *d, bool *trigger_was_pressed_last_frame) 111 117 { 112 118 igText("Hover buttons and sliders to touch component."); 113 119 bool touched = false; ··· 132 138 133 139 // Trigger 134 140 igText("Value > 0.0 causes touch, 0.7 > causes click"); 141 + if (handle_downable_button("Press for 1.0")) { 142 + d->trigger_value.x = 1.0f; 143 + *trigger_was_pressed_last_frame = true; 144 + } else if (*trigger_was_pressed_last_frame) { 145 + d->trigger_value.x = 0.0f; 146 + *trigger_was_pressed_last_frame = false; 147 + } 135 148 igSliderFloat("Trigger", &d->trigger_value.x, 0, 1, "%.2f", 0); 136 149 touched |= igIsItemHovered(ImGuiHoveredFlags_RectOnly); 137 150 d->trigger_click = d->trigger_value.x > 0.7; ··· 313 326 314 327 #define BUTTONS(prefix) \ 315 328 do { \ 316 - handle_input(&d->prefix); \ 329 + handle_input(&d->prefix, &gr->prefix##_trigger_was_pressed_last_frame); \ 317 330 } while (false) 318 331 319 332 #define CURL(prefix, name, index) igDragFloat(#prefix "." #name, &d->prefix.hand_curl[index], 0.01, 0.0, 1.0, "%f", 0);