1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-02-08 23:20:12 +00:00

vr:: improved performance?

This commit is contained in:
Zeno Rogue 2021-02-04 21:30:08 +01:00
parent db00cf3ae4
commit fd67ec2385
2 changed files with 15 additions and 5 deletions

View File

@ -5313,6 +5313,8 @@ EX void drawscreen() {
#endif #endif
SDL_UpdateRect(s, 0, 0, vid.xres, vid.yres); SDL_UpdateRect(s, 0, 0, vid.xres, vid.yres);
#endif #endif
vrhr::handoff();
//printf("\ec"); //printf("\ec");
} }

18
vr.cpp
View File

@ -302,11 +302,13 @@ vr_rendermodel *get_render_model(string name) {
return md; return md;
} }
void track_all() { EX bool need_poses = true;
track_actions();
void track_poses() {
E4; E4;
// println(hlog, "tracking");
if(!need_poses) return;
need_poses = false;
vr::VRCompositor()->WaitGetPoses(vrdata.poses, vr::k_unMaxTrackedDeviceCount, NULL, 0 ); vr::VRCompositor()->WaitGetPoses(vrdata.poses, vr::k_unMaxTrackedDeviceCount, NULL, 0 );
// println(hlog, "poses received"); // println(hlog, "poses received");
@ -405,7 +407,8 @@ EX void vr_control() {
start_vr(); start_vr();
} }
if(state == 1) { if(state == 1) {
track_all(); track_actions();
need_poses = true;
} }
static bool last_vr_clicked = false; static bool last_vr_clicked = false;
@ -935,7 +938,7 @@ EX void gen_mv() {
} }
EX void render() { EX void render() {
track_poses();
resetbuffer rb; resetbuffer rb;
state = 2; state = 2;
@ -1418,6 +1421,11 @@ EX void submit() {
} }
} }
EX void handoff() {
if(!state) return;
vr::VRCompositor()->PostPresentHandoff();
}
#endif #endif
EX } EX }