From 5af1b4a7c9119cf438e4cb5303009fbe9a25c6d7 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 9 Oct 2016 20:56:58 +0200 Subject: [PATCH] Added simulated head-tracking on VR simulator A simple 1st person camera... still requires some work... --- examples/core_oculus_rift.c | 7 +++++-- src/raylib.h | 1 + src/rlgl.c | 6 ++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/examples/core_oculus_rift.c b/examples/core_oculus_rift.c index 88e411d4..3d8bb278 100644 --- a/examples/core_oculus_rift.c +++ b/examples/core_oculus_rift.c @@ -37,6 +37,8 @@ int main() Vector3 cubePosition = { 0.0f, 0.0f, 0.0f }; + SetCameraMode(camera, CAMERA_FIRST_PERSON); + SetTargetFPS(90); // Set our game to run at 90 frames-per-second //-------------------------------------------------------------------------------------- @@ -45,7 +47,8 @@ int main() { // Update //---------------------------------------------------------------------------------- - UpdateVrTracking(); + if (IsVrSimulator()) UpdateCamera(&camera); + else UpdateVrTracking(); if (IsKeyPressed(KEY_SPACE)) ToggleVrMode(); //---------------------------------------------------------------------------------- @@ -61,7 +64,7 @@ int main() DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED); DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON); - DrawGrid(10, 1.0f); + DrawGrid(40, 1.0f); End3dMode(); diff --git a/src/raylib.h b/src/raylib.h index 3b752785..df0ee7bc 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -891,6 +891,7 @@ RLAPI void DestroyLight(Light light); // Des RLAPI void InitVrDevice(int vdDevice); // Init VR device RLAPI void CloseVrDevice(void); // Close VR device RLAPI bool IsVrDeviceReady(void); // Detect if VR device (or simulator) is ready +RLAPI bool IsVrSimulator(void); // Detect if VR simulator is running RLAPI void UpdateVrTracking(void); // Update VR tracking (position and orientation) RLAPI void ToggleVrMode(void); // Enable/Disable VR experience (device or simulator) diff --git a/src/rlgl.c b/src/rlgl.c index 244de52c..702edb18 100644 --- a/src/rlgl.c +++ b/src/rlgl.c @@ -2710,6 +2710,12 @@ bool IsVrDeviceReady(void) return (vrDeviceReady || vrSimulator) && vrEnabled; } +// Detect if VR simulator is running +bool IsVrSimulator(void) +{ + return vrSimulator; +} + // Enable/Disable VR experience (device or simulator) void ToggleVrMode(void) {