aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRay <raysan5@gmail.com>2016-06-17 13:54:45 +0200
committerRay <raysan5@gmail.com>2016-06-17 13:54:45 +0200
commit24c9b1f717bd9a6510667907614928188a6b6a6f (patch)
tree4dbed77c7b27390d28bc0977f0588a9f8d7d9aa7 /src
parent9fdf4420d5354c32394246703015a686df8135ce (diff)
downloadraylib-24c9b1f717bd9a6510667907614928188a6b6a6f.tar.gz
raylib-24c9b1f717bd9a6510667907614928188a6b6a6f.zip
Improving Oculus Rift example...
Under design... looking for the easiest and most comprehensive way for the user to use VR...
Diffstat (limited to 'src')
-rw-r--r--src/core.c10
-rw-r--r--src/raylib.h3
-rw-r--r--src/rlgl.c10
-rw-r--r--src/rlgl.h2
4 files changed, 18 insertions, 7 deletions
diff --git a/src/core.c b/src/core.c
index 7c2dbcb9..eef81bad 100644
--- a/src/core.c
+++ b/src/core.c
@@ -606,6 +606,8 @@ void Begin3dMode(Camera camera)
rlMultMatrixf(MatrixToFloat(cameraView)); // Multiply MODELVIEW matrix by view matrix (camera)
rlEnableDepthTest(); // Enable DEPTH_TEST for 3D
+
+ //if (vrEnabled) BeginVrMode();
}
// Ends 3D mode and returns to default 2D orthographic mode
@@ -1015,6 +1017,14 @@ Matrix GetCameraMatrix(Camera camera)
return MatrixLookAt(camera.position, camera.target, camera.up);
}
+// Update and draw default buffers vertex data
+// NOTE: This data has been stored dynamically during frame on each Draw*() call
+void DrawDefaultBuffers(void)
+{
+ rlglUpdateDefaultBuffers(); // Upload frame vertex data to GPU
+ rlglDrawDefaultBuffers(); // Draw vertex data into framebuffer
+}
+
//----------------------------------------------------------------------------------
// Module Functions Definition - Input (Keyboard, Mouse, Gamepad) Functions
//----------------------------------------------------------------------------------
diff --git a/src/raylib.h b/src/raylib.h
index 0c9f0280..ed787892 100644
--- a/src/raylib.h
+++ b/src/raylib.h
@@ -572,6 +572,7 @@ void EndTextureMode(void); // Ends drawing to r
Ray GetMouseRay(Vector2 mousePosition, Camera camera); // Returns a ray trace from mouse position
Vector2 GetWorldToScreen(Vector3 position, Camera camera); // Returns the screen space position from a 3d world space position
Matrix GetCameraMatrix(Camera camera); // Returns camera transform matrix (view matrix)
+void DrawDefaultBuffers(void); // Update and draw default buffers vertex data (stored dynamically in frame)
void SetTargetFPS(int fps); // Set target FPS (maximum)
float GetFPS(void); // Returns current FPS
@@ -853,7 +854,7 @@ void DestroyLight(Light light); // Destroy a
void InitOculusDevice(void); // Init Oculus Rift device
void CloseOculusDevice(void); // Close Oculus Rift device
void UpdateOculusTracking(void); // Update Oculus Rift tracking (position and orientation)
-void SetOculusMatrix(int eye); // Set internal projection and modelview matrix depending on eyes tracking data
+void SetOculusView(int eye); // Set internal projection and modelview matrix depending on eyes tracking data
void BeginOculusDrawing(void); // Begin Oculus drawing configuration
void EndOculusDrawing(void); // End Oculus drawing process (and desktop mirror)
diff --git a/src/rlgl.c b/src/rlgl.c
index 6d003869..d68b9109 100644
--- a/src/rlgl.c
+++ b/src/rlgl.c
@@ -297,8 +297,8 @@ static void UnloadDefaultShader(void); // Unload default shader
static void UnloadStandardShader(void); // Unload standard shader
static void LoadDefaultBuffers(void); // Load default internal buffers (lines, triangles, quads)
-static void UpdateDefaultBuffers(void); // Update default internal buffers (VAOs/VBOs) with vertex data
-static void DrawDefaultBuffers(void); // Draw default internal buffers vertex data
+void rlglUpdateDefaultBuffers(void); // Update default internal buffers (VAOs/VBOs) with vertex data
+void rlglDrawDefaultBuffers(void); // Draw default internal buffers vertex data
static void UnloadDefaultBuffers(void); // Unload default internal buffers vertex data from CPU and GPU
static void SetShaderLights(Shader shader); // Sets shader uniform values for lights array
@@ -2542,7 +2542,7 @@ void UpdateOculusTracking(void)
//if (sessionStatus.IsVisible) // the game or experience has VR focus and is visible in the HMD.
}
-void SetOculusMatrix(int eye)
+void SetOculusView(int eye)
{
rlViewport(layer.eyeLayer.Viewport[eye].Pos.x, layer.eyeLayer.Viewport[eye].Pos.y, layer.eyeLayer.Viewport[eye].Size.w, layer.eyeLayer.Viewport[eye].Size.h);
@@ -3089,7 +3089,7 @@ static void LoadDefaultBuffers(void)
// Update default internal buffers (VAOs/VBOs) with vertex array data
// NOTE: If there is not vertex data, buffers doesn't need to be updated (vertexCount > 0)
// TODO: If no data changed on the CPU arrays --> No need to re-update GPU arrays (change flag required)
-static void UpdateDefaultBuffers(void)
+void rlglUpdateDefaultBuffers(void)
{
// Update lines vertex buffers
if (lines.vCounter > 0)
@@ -3159,7 +3159,7 @@ static void UpdateDefaultBuffers(void)
// Draw default internal buffers vertex data
// NOTE: We draw in this order: lines, triangles, quads
-static void DrawDefaultBuffers(void)
+void rlglDrawDefaultBuffers(void)
{
// Set current shader and upload current MVP matrix
if ((lines.vCounter > 0) || (triangles.vCounter > 0) || (quads.vCounter > 0))
diff --git a/src/rlgl.h b/src/rlgl.h
index 3322d80c..8904b9ac 100644
--- a/src/rlgl.h
+++ b/src/rlgl.h
@@ -357,7 +357,7 @@ void TraceLog(int msgType, const char *text, ...);
void InitOculusDevice(void); // Init Oculus Rift device
void CloseOculusDevice(void); // Close Oculus Rift device
void UpdateOculusTracking(void); // Update Oculus Rift tracking (position and orientation)
-void SetOculusMatrix(int eye); // Set internal projection and modelview matrix depending on eyes tracking data
+void SetOculusView(int eye); // Set internal projection and modelview matrix depending on eyes tracking data
void BeginOculusDrawing(void); // Begin Oculus drawing configuration
void EndOculusDrawing(void); // End Oculus drawing process (and desktop mirror)
#endif