aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRay San <raysan5@gmail.com>2017-10-04 12:11:40 +0200
committerRay San <raysan5@gmail.com>2017-10-04 12:11:40 +0200
commitddea9d68bfa7c75fd71997ef93f633ed0769cc1a (patch)
tree3af439006a042e78971ac726790f424400ab99bd /src
parentca0ff820462639b48f30f3be93d9260946071307 (diff)
downloadraylib-ddea9d68bfa7c75fd71997ef93f633ed0769cc1a.tar.gz
raylib-ddea9d68bfa7c75fd71997ef93f633ed0769cc1a.zip
Review VR simulator
Requires some work, distortion shader could be move out of raylib to example code...
Diffstat (limited to 'src')
-rw-r--r--src/rlgl.c10
-rw-r--r--src/rlgl.h2
-rw-r--r--src/shader_distortion.h4
3 files changed, 8 insertions, 8 deletions
diff --git a/src/rlgl.c b/src/rlgl.c
index c336ac4c..5a6b70e5 100644
--- a/src/rlgl.c
+++ b/src/rlgl.c
@@ -291,7 +291,6 @@ static bool texCompASTCSupported = false; // ASTC texture compression support
#if defined(SUPPORT_VR_SIMULATOR)
// VR global variables
-static VrDeviceInfo hmd; // Current VR device info
static VrStereoConfig vrConfig; // VR stereo configuration for simulator
static bool vrSimulatorReady = false; // VR simulator ready flag
static bool vrStereoRender = false; // VR stereo rendering enabled/disabled flag
@@ -1947,7 +1946,7 @@ void rlDrawMesh(Mesh mesh, Material material, Matrix transform)
// Matrices and other values required by shader
//-----------------------------------------------------
// Calculate and send to shader model matrix (used by PBR shader)
- SetShaderValueMatrix(material.shader, material.shader.locs[LOC_MATRIX_MODEL], transform);
+ if (material.shader.locs[LOC_MATRIX_MODEL] != -1) SetShaderValueMatrix(material.shader, material.shader.locs[LOC_MATRIX_MODEL], transform);
// Upload to shader material.colDiffuse
if (material.shader.locs[LOC_COLOR_DIFFUSE] != -1)
@@ -2830,10 +2829,12 @@ void EndBlendMode(void)
#if defined(SUPPORT_VR_SIMULATOR)
// Init VR simulator for selected device
-// NOTE: It modifies the global variable: VrDeviceInfo hmd
+// NOTE: It modifies the global variable: VrStereoConfig vrConfig
void InitVrSimulator(int vrDevice)
{
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
+ VrDeviceInfo hmd; // Current VR device info
+
if (vrDevice == HMD_OCULUS_RIFT_DK2)
{
// Oculus Rift DK2 parameters
@@ -3345,8 +3346,6 @@ static void SetShaderDefaultLocations(Shader *shader)
shader->locs[LOC_MAP_DIFFUSE] = glGetUniformLocation(shader->id, "texture0");
shader->locs[LOC_MAP_NORMAL] = glGetUniformLocation(shader->id, "texture1");
shader->locs[LOC_MAP_SPECULAR] = glGetUniformLocation(shader->id, "texture2");
-
- // TODO: Try to find all expected/recognized shader locations (predefined names, must be documented)
}
// Unload default shader
@@ -3941,6 +3940,7 @@ static void GenDrawCube(void)
#if defined(SUPPORT_VR_SIMULATOR)
// Configure stereo rendering (including distortion shader) with HMD device parameters
+// NOTE: It modifies the global variable: VrStereoConfig vrConfig
static void SetStereoConfig(VrDeviceInfo hmd)
{
// Compute aspect ratio
diff --git a/src/rlgl.h b/src/rlgl.h
index b9ea0f43..6f1b6adc 100644
--- a/src/rlgl.h
+++ b/src/rlgl.h
@@ -27,7 +27,7 @@
* #define SUPPORT_VR_SIMULATION / SUPPORT_STEREO_RENDERING
* Support VR simulation functionality (stereo rendering)
*
-* #define SUPPORT_SHADER_DISTORTION
+* #define SUPPORT_DISTORTION_SHADER
* Include stereo rendering distortion shader (shader_distortion.h)
*
* DEPENDENCIES:
diff --git a/src/shader_distortion.h b/src/shader_distortion.h
index 75653e12..7a2c994b 100644
--- a/src/shader_distortion.h
+++ b/src/shader_distortion.h
@@ -20,12 +20,12 @@ static const char vDistortionShaderStr[] =
"out vec2 fragTexCoord; \n"
"out vec4 fragColor; \n"
#endif
-"uniform mat4 mvpMatrix; \n"
+"uniform mat4 mvp; \n"
"void main() \n"
"{ \n"
" fragTexCoord = vertexTexCoord; \n"
" fragColor = vertexColor; \n"
-" gl_Position = mvpMatrix*vec4(vertexPosition, 1.0); \n"
+" gl_Position = mvp*vec4(vertexPosition, 1.0); \n"
"} \n";
// Fragment shader definition to embed, no external file required