diff options
| author | Ray San <raysan5@gmail.com> | 2017-10-04 12:11:40 +0200 |
|---|---|---|
| committer | Ray San <raysan5@gmail.com> | 2017-10-04 12:11:40 +0200 |
| commit | ddea9d68bfa7c75fd71997ef93f633ed0769cc1a (patch) | |
| tree | 3af439006a042e78971ac726790f424400ab99bd /src | |
| parent | ca0ff820462639b48f30f3be93d9260946071307 (diff) | |
| download | raylib-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.c | 10 | ||||
| -rw-r--r-- | src/rlgl.h | 2 | ||||
| -rw-r--r-- | src/shader_distortion.h | 4 |
3 files changed, 8 insertions, 8 deletions
@@ -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 @@ -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 |
