summaryrefslogtreecommitdiffhomepage
path: root/src/rlgl.c
diff options
context:
space:
mode:
authorraysan5 <[email protected]>2017-11-12 11:00:28 +0100
committerraysan5 <[email protected]>2017-11-12 11:00:28 +0100
commit02dd4d32b5ed7586e6691a6cdae03a658127c7be (patch)
tree404e0644ed0b2242c0fe281d03d61c270e469739 /src/rlgl.c
parent09228752ce2695baf79cbc2edccc60fabb38f783 (diff)
downloadraylib-02dd4d32b5ed7586e6691a6cdae03a658127c7be.tar.gz
raylib-02dd4d32b5ed7586e6691a6cdae03a658127c7be.zip
Allow custom distortion shader - IN PROGRESS -
Diffstat (limited to 'src/rlgl.c')
-rw-r--r--src/rlgl.c30
1 files changed, 14 insertions, 16 deletions
diff --git a/src/rlgl.c b/src/rlgl.c
index 518b0470..f273e55d 100644
--- a/src/rlgl.c
+++ b/src/rlgl.c
@@ -232,7 +232,7 @@ typedef struct DrawCall {
typedef struct VrStereoConfig {
RenderTexture2D stereoFbo; // VR stereo rendering framebuffer
Shader distortionShader; // VR stereo rendering distortion shader
- //Rectangle eyesViewport[2]; // VR stereo rendering eyes viewports
+ Rectangle eyesViewport[2]; // VR stereo rendering eyes viewports
Matrix eyesProjection[2]; // VR stereo rendering eyes projection matrices
Matrix eyesViewOffset[2]; // VR stereo rendering eyes view offset matrices
} VrStereoConfig;
@@ -2926,7 +2926,7 @@ void InitVrSimulator(VrDeviceInfo info)
vrConfig.stereoFbo = rlLoadRenderTexture(screenWidth, screenHeight);
#if defined(SUPPORT_DISTORTION_SHADER)
- // Load distortion shader (initialized by default with Oculus Rift CV1 parameters)
+ // Load distortion shader
unsigned int vertexShaderId = CompileShader(distortionVShaderStr, GL_VERTEX_SHADER);
unsigned int fragmentShaderId = CompileShader(distortionFShaderStr, GL_FRAGMENT_SHADER);
@@ -2934,6 +2934,7 @@ void InitVrSimulator(VrDeviceInfo info)
if (vrConfig.distortionShader.id > 0) SetShaderDefaultLocations(&vrConfig.distortionShader);
#endif
+ // Set VR configutarion parameters, including distortion shader
SetStereoConfig(info);
vrSimulatorReady = true;
@@ -2958,18 +2959,6 @@ void CloseVrSimulator(void)
#endif
}
-// TODO: Review VR system to be more flexible,
-// move distortion shader to user side,
-// SetStereoConfig() must be reviewed...
-/*
-// Set VR view distortion shader
-void SetVrDistortionShader(Shader shader)
-{
- vrConfig.distortionShader = shader;
- SetStereoConfig(info);
-}
-*/
-
// Detect if VR simulator is running
bool IsVrSimulatorReady(void)
{
@@ -2980,6 +2969,15 @@ bool IsVrSimulatorReady(void)
#endif
}
+// Set VR distortion shader for stereoscopic rendering
+// TODO: Review VR system to be more flexible, move distortion shader to user side
+void SetVrDistortionShader(Shader shader)
+{
+ vrConfig.distortionShader = shader;
+
+ //SetStereoConfig(info); // TODO: Must be reviewed to set new distortion shader uniform values...
+}
+
// Enable/Disable VR experience (device or simulator)
void ToggleVrMode(void)
{
@@ -4026,8 +4024,8 @@ static void SetStereoConfig(VrDeviceInfo hmd)
vrConfig.eyesViewOffset[1] = MatrixTranslate(hmd.interpupillaryDistance*0.5f, 0.075f, 0.045f);
// Compute eyes Viewports
- //vrConfig.eyesViewport[0] = (Rectangle){ 0, 0, hmd.hResolution/2, hmd.vResolution };
- //vrConfig.eyesViewport[1] = (Rectangle){ hmd.hResolution/2, 0, hmd.hResolution/2, hmd.vResolution };
+ vrConfig.eyesViewport[0] = (Rectangle){ 0, 0, hmd.hResolution/2, hmd.vResolution };
+ vrConfig.eyesViewport[1] = (Rectangle){ hmd.hResolution/2, 0, hmd.hResolution/2, hmd.vResolution };
}
// Set internal projection and modelview matrix depending on eyes tracking data