add transparency toggle

This commit is contained in:
Crispy 2023-06-06 14:05:43 +02:00
parent 2c0386b141
commit 66227ae744
3 changed files with 25 additions and 0 deletions

View file

@ -56,6 +56,11 @@
"requirement": "suggested",
"type": "vector2"
},
{
"name": "/actions/cursor/in/toggle_transparent",
"requirement": "suggested",
"type": "boolean"
},
{
"name": "/actions/cursor/out/scroll_haptic",
"requirement": "suggested",
@ -89,6 +94,7 @@
"/actions/cursor/in/mouse_right": "right mouse button",
"/actions/cursor/in/mouse_middle": "middle mouse button",
"/actions/cursor/in/scroll": "scroll",
"/actions/cursor/in/toggle_transparent": "toggle transparency",
"/actions/cursor/out/scroll_haptic": "scrolling haptic feedback"
}
]

View file

@ -10,6 +10,7 @@
const VRMat root_start_pose = {{{1, 0, 0, 0}, {0, 1, 0, 0.8f}, {0, 0, 1, 0}}}; // 0.8m above origin
const int FRAME_INTERVAL = 4; // number of update loops until the frame buffer is updated
const float TRANSPARENCY = 0.6f;
App::App()
{
@ -75,6 +76,8 @@ App::App()
assert(action_err == 0);
action_err = vr_input->GetActionHandle("/actions/cursor/in/scroll", &_input_handles.cursor.scroll);
assert(action_err == 0);
action_err = vr_input->GetActionHandle("/actions/cursor/in/toggle_transparent", &_input_handles.cursor.toggle_transparent);
assert(action_err == 0);
action_err = vr_input->GetActionHandle("/actions/cursor/out/scroll_haptic", &_input_handles.cursor.scroll_haptic);
assert(action_err == 0);
action_err = vr_input->GetActionSetHandle("/actions/main", &_input_handles.main_set);
@ -193,6 +196,20 @@ void App::UpdateInput(float dtime)
}
UpdateUIVisibility();
}
if (IsInputJustPressed(_input_handles.cursor.toggle_transparent))
{
_transparent = !_transparent;
if (_transparent)
{
for (auto &panel : _panels)
panel.GetOverlay()->SetAlpha(TRANSPARENCY);
}
else
{
for (auto &panel : _panels)
panel.GetOverlay()->SetAlpha(1);
}
}
if (!_hidden)
{
if (IsInputJustPressed(_input_handles.main.reset))

View file

@ -33,6 +33,7 @@ struct InputHandles
vr::VRActionHandle_t mouse_middle;
vr::VRActionHandle_t scroll;
vr::VRActionHandle_t scroll_haptic;
vr::VRActionHandle_t toggle_transparent;
} cursor;
vr::VRActionSetHandle_t cursor_set;
struct
@ -87,6 +88,7 @@ class App
Overlay _root_overlay;
std::vector<Panel> _panels;
bool _hidden = false;
bool _transparent = false;
bool _edit_mode = false;
std::optional<Controller *> _active_cursor;