Compare commits

...

3 commits
v0.2.2 ... main

8 changed files with 42 additions and 11 deletions

1
.gitignore vendored
View file

@ -1,3 +1,4 @@
sinpin_vr
.vscode/
*.zip
*.tar.xz

View file

@ -1,18 +1,23 @@
VERSION=v0.2.2
CC := g++
# CC := clang++
VERSION=v0.2.3
CXX := g++
# CXX := clang++
CPPFLAGS := -g -Wall -std=c++17
LFLAGS := -lX11 -lXrandr -lXtst -lglfw -lGL
LIBS := openvr/libopenvr_api.so
SRC := src/*.cpp
OUT := ./sinpin_vr
CPPFLAGS := -Wall -std=c++17 $(LFLAGS) $(LIBS) $(SRC) -o $(OUT)
OVR := -Llib -lopenvr_api
TARGET := ./sinpin_vr
build:
$(CC) -g $(CPPFLAGS)
$(CXX) src/*.cpp $(CPPFLAGS) $(LFLAGS) -Wl,-rpath,'$$ORIGIN/lib' $(OVR) -o $(TARGET)
release: build
zip -r sinpin_vr-$(VERSION).zip sinpin_vr bindings openvr/libopenvr_api.so
mkdir -p sinpin-vr/lib
cp lib/libopenvr_api.so sinpin-vr/lib
cp -r bindings sinpin-vr
cp sinpin_vr sinpin-vr
tar -caf sinpin-vr-$(VERSION).tar.xz sinpin-vr
rm -rf sinpin-vr
run: build
$(OUT)
$(TARGET)

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;

View file

@ -1,6 +1,6 @@
#pragma once
#include "../openvr/openvr.h"
#include "../lib/openvr.h"
#include <glm/glm.hpp>
typedef vr::TrackedDeviceIndex_t TrackerID;