From 5fecf5c088122dc409bd209b08627e671cbdc175 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Mon, 10 Oct 2016 19:42:59 +0200 Subject: [PATCH] Review UpdateVrTracking() and rlglLoadRenderTexture() --- src/raylib.h | 2 +- src/rlgl.c | 17 +++++++++-------- src/rlgl.h | 2 +- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index df0ee7bc..9bc89130 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -892,7 +892,7 @@ 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 UpdateVrTracking(Camera *camera); // Update VR tracking (position and orientation) and camera RLAPI void ToggleVrMode(void); // Enable/Disable VR experience (device or simulator) //------------------------------------------------------------------------------------ diff --git a/src/rlgl.c b/src/rlgl.c index 702edb18..e8607925 100644 --- a/src/rlgl.c +++ b/src/rlgl.c @@ -1522,7 +1522,7 @@ RenderTexture2D rlglLoadRenderTexture(int width, int height) target.texture.id = 0; target.texture.width = width; target.texture.height = height; - target.texture.format = UNCOMPRESSED_R8G8B8; + target.texture.format = UNCOMPRESSED_R8G8B8A8; target.texture.mipmaps = 1; target.depth.id = 0; @@ -1539,7 +1539,7 @@ RenderTexture2D rlglLoadRenderTexture(int width, int height) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); glBindTexture(GL_TEXTURE_2D, 0); #if defined(GRAPHICS_API_OPENGL_33) @@ -2734,16 +2734,17 @@ void ToggleVrMode(void) #endif } -// Update VR tracking (position and orientation) -void UpdateVrTracking(void) +// Update VR tracking (position and orientation) and camera +void UpdateVrTracking(Camera *camera) { #if defined(RLGL_OCULUS_SUPPORT) - if (vrDeviceReady) UpdateOculusTracking(); - else -#endif + if (vrDeviceReady) { - // TODO: Use alternative inputs (mouse, keyboard) to simulate tracking data (eyes position/orientation) + UpdateOculusTracking(); + + // TODO: Update camera data (position, target, up) with tracking data } +#endif } // Begin Oculus drawing configuration diff --git a/src/rlgl.h b/src/rlgl.h index 5fc9f8b9..3a47b4c8 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -375,7 +375,7 @@ float *MatrixToFloat(Matrix mat); void InitVrDevice(int vrDevice); // Init VR device void CloseVrDevice(void); // Close VR device bool IsVrDeviceReady(void); // Detect if VR device (or simulator) is ready -void UpdateVrTracking(void); // Update VR tracking (position and orientation) +void UpdateVrTracking(Camera *camera); // Update VR tracking (position and orientation) and camera void ToggleVrMode(void); // Enable/Disable VR experience (device or simulator) // Oculus Rift API for direct access the device (no simulator)