diff --git a/src/rlgl.c b/src/rlgl.c index c336ac4c3..5a6b70e51 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 b9ea0f435..6f1b6adcd 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 75653e122..7a2c994b3 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