aboutsummaryrefslogtreecommitdiff
path: root/src/rlgl.c
diff options
context:
space:
mode:
authorRay <raysan5@gmail.com>2016-06-10 08:58:37 +0200
committerGitHub <noreply@github.com>2016-06-10 08:58:37 +0200
commit296378299259c86af58d5bda5d4654680ef87f08 (patch)
tree5d5b4ca2dc079b74c9228b8f1174b7e54891fe1b /src/rlgl.c
parentfb9047735465537d97c78fdf56bccf7b74ba0bb7 (diff)
parent77f599885dade4930fb01baca22db6e2ae0c9f20 (diff)
downloadraylib-296378299259c86af58d5bda5d4654680ef87f08.tar.gz
raylib-296378299259c86af58d5bda5d4654680ef87f08.zip
Merge pull request #128 from victorfisac/develop
Adapted shaders for OpenGL ES 2.0
Diffstat (limited to 'src/rlgl.c')
-rw-r--r--src/rlgl.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/rlgl.c b/src/rlgl.c
index c9944806..9a88a818 100644
--- a/src/rlgl.c
+++ b/src/rlgl.c
@@ -1795,8 +1795,13 @@ void rlglDrawMesh(Mesh mesh, Material material, Matrix transform)
// NOTE: standard shader specific locations are got at render time to keep Shader struct as simple as possible (with just default shader locations)
if (material.shader.id == standardShader.id)
{
+ // Transpose and inverse model transformations matrix for fragment normal calculations
+ Matrix transInvTransform = transform;
+ MatrixTranspose(&transInvTransform);
+ MatrixInvert(&transInvTransform);
+
// Send model transformations matrix to shader
- glUniformMatrix4fv(glGetUniformLocation(material.shader.id, "modelMatrix"), 1, false, MatrixToFloat(transform));
+ glUniformMatrix4fv(glGetUniformLocation(material.shader.id, "modelMatrix"), 1, false, MatrixToFloat(transInvTransform));
// Send view transformation matrix to shader. View matrix 8, 9 and 10 are view direction vector axis values (target - position)
glUniform3f(glGetUniformLocation(material.shader.id, "viewDir"), matView.m8, matView.m9, matView.m10);