aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorraysan5 <raysan5@gmail.com>2016-10-17 17:02:33 +0200
committerraysan5 <raysan5@gmail.com>2016-10-17 17:02:33 +0200
commitd5e0f4e84eb9c8281be7cae8a4a38c231fc4a664 (patch)
tree52141ee3be7081a18e8122c6caf368f5585fa152
parent8f60996b6482246cb8f66d0ba8f6aa1604e6dd01 (diff)
downloadraylib-d5e0f4e84eb9c8281be7cae8a4a38c231fc4a664.tar.gz
raylib-d5e0f4e84eb9c8281be7cae8a4a38c231fc4a664.zip
Added notes on vr tracking -> camera update
-rw-r--r--src/rlgl.c24
-rw-r--r--src/rlgl.h2
2 files changed, 13 insertions, 13 deletions
diff --git a/src/rlgl.c b/src/rlgl.c
index a754678c..80687958 100644
--- a/src/rlgl.c
+++ b/src/rlgl.c
@@ -372,11 +372,11 @@ static char *ReadTextFile(const char *fileName); // Read chars array from
#if defined(RLGL_OCULUS_SUPPORT)
#if !defined(RLGL_STANDALONE)
-static bool InitOculusDevice(void); // Initialize Oculus device (returns true if success)
-static void CloseOculusDevice(void); // Close Oculus device
-static void UpdateOculusTracking(void); // Update Oculus head position-orientation tracking
-static void BeginOculusDrawing(void); // Setup Oculus buffers for drawing
-static void EndOculusDrawing(void); // Finish Oculus drawing and blit framebuffer to mirror
+static bool InitOculusDevice(void); // Initialize Oculus device (returns true if success)
+static void CloseOculusDevice(void); // Close Oculus device
+static void UpdateOculusTracking(Camera *camera); // Update Oculus head position-orientation tracking
+static void BeginOculusDrawing(void); // Setup Oculus buffers for drawing
+static void EndOculusDrawing(void); // Finish Oculus drawing and blit framebuffer to mirror
#endif
static OculusBuffer LoadOculusBuffer(ovrSession session, int width, int height); // Load Oculus required buffers
@@ -2735,15 +2735,11 @@ void ToggleVrMode(void)
}
// Update VR tracking (position and orientation) and camera
+// NOTE: Camera (position, target, up) gets update with head tracking information
void UpdateVrTracking(Camera *camera)
{
#if defined(RLGL_OCULUS_SUPPORT)
- if (vrDeviceReady)
- {
- UpdateOculusTracking();
-
- // TODO: Update camera data (position, target, up) with tracking data
- }
+ if (vrDeviceReady) UpdateOculusTracking(camera);
#endif
}
@@ -4083,7 +4079,7 @@ OCULUSAPI void CloseOculusDevice(void)
}
// Update Oculus head position-orientation tracking
-OCULUSAPI void UpdateOculusTracking(void)
+OCULUSAPI void UpdateOculusTracking(Camera *camera)
{
frameIndex++;
@@ -4093,6 +4089,10 @@ OCULUSAPI void UpdateOculusTracking(void)
layer.eyeLayer.RenderPose[0] = eyePoses[0];
layer.eyeLayer.RenderPose[1] = eyePoses[1];
+ // TODO: Update external camera with eyePoses data (position, orientation)
+ // NOTE: We can simplify to simple camera if we consider IPD and HMD device configuration again later
+ // it will be useful for the user to draw, lets say, billboards oriented to camera
+
// Get session status information
ovrSessionStatus sessionStatus;
ovr_GetSessionStatus(session, &sessionStatus);
diff --git a/src/rlgl.h b/src/rlgl.h
index 3a47b4c8..d5a39aaf 100644
--- a/src/rlgl.h
+++ b/src/rlgl.h
@@ -381,7 +381,7 @@ void ToggleVrMode(void); // Enable/Disable VR experience (dev
// Oculus Rift API for direct access the device (no simulator)
bool InitOculusDevice(void); // Initialize Oculus device (returns true if success)
void CloseOculusDevice(void); // Close Oculus device
-void UpdateOculusTracking(void); // Update Oculus head position-orientation tracking
+void UpdateOculusTracking(Camera *camera); // Update Oculus head position-orientation tracking (and camera)
void BeginOculusDrawing(void); // Setup Oculus buffers for drawing
void EndOculusDrawing(void); // Finish Oculus drawing and blit framebuffer to mirror
#endif