vr:: fixes to spinEdge

This commit is contained in:
Zeno Rogue 2020-11-22 19:59:34 +01:00
parent 7e3ecab8ed
commit ffcda7f602
2 changed files with 6 additions and 3 deletions

View File

@ -1594,7 +1594,7 @@ EX hyperpoint vertical_vector() {
EX void spinEdge(ld aspd) {
#if CAP_VR
if(vrhr::state && keep_vertical()) {
if(vrhr::state && keep_vertical() && !vrhr::first) {
transmatrix T = vrhr::hmd_ref_at;
T = vrhr::sm * inverse(T);
vrhr::be_33(T);
@ -1618,6 +1618,8 @@ EX void spinEdge(ld aspd) {
}
}
vrhr::be_33(V);
V = cspin(1, 2, 90 * degree) * V;
get_view_orientation() = inverse(T) * V * gpushxto0(h);
return;

5
vr.cpp
View File

@ -189,7 +189,7 @@ string device_class_name(vr::ETrackedDeviceClass v) {
return "unknown";
}
bool first = true;
EX bool first = true;
EX transmatrix hmd_at = Id;
EX transmatrix hmd_ref_at = Id;
@ -286,7 +286,6 @@ void track_all() {
track_actions();
E4;
sm = Id; sm[1][1] = sm[2][2] = -1;
// println(hlog, "tracking");
vr::VRCompositor()->WaitGetPoses(vrdata.poses, vr::k_unMaxTrackedDeviceCount, NULL, 0 );
// println(hlog, "poses received");
@ -552,6 +551,8 @@ EX void track_actions() {
EX void start_vr() {
if(true) { sm = Id; sm[1][1] = sm[2][2] = -1; }
vr::EVRInitError eError = vr::VRInitError_None;
vrdata.vr = vr::VR_Init( &eError, vr::VRApplication_Scene );