diff options
author | Emmanuel Gil Peyrot <emmanuel.peyrot@collabora.com> | 2016-02-09 23:59:16 +0000 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2016-02-09 23:59:52 +0000 |
commit | d323f2487d84fbd3909cd2166b98a2a875b71bf8 (patch) | |
tree | 6a76c24bfb28cc632d8261435263d7be8b2772ef /slideshow/opengl/honeycombVertexShader.glsl | |
parent | 1f8ddf1b8ff4727473676de9c7fda24b49b9599d (diff) |
slideshow: Add shadows to Honeycomb, using the same way as Vortex
Change-Id: I1f8f11f900f281792b417c1efead272fe3e8432e
Diffstat (limited to 'slideshow/opengl/honeycombVertexShader.glsl')
-rw-r--r-- | slideshow/opengl/honeycombVertexShader.glsl | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/slideshow/opengl/honeycombVertexShader.glsl b/slideshow/opengl/honeycombVertexShader.glsl index d54783b82b7b..32fdecef01f9 100644 --- a/slideshow/opengl/honeycombVertexShader.glsl +++ b/slideshow/opengl/honeycombVertexShader.glsl @@ -21,8 +21,13 @@ uniform mat4 u_operationsTransformMatrix; uniform float time; uniform float selectedTexture; +uniform float shadow; +uniform mat4 orthoProjectionMatrix; +uniform mat4 orthoViewMatrix; -out mat4 modelViewProjectionMatrix; +out mat4 projectionMatrix; +out mat4 modelViewMatrix; +out mat4 shadowMatrix; mat4 translationMatrix(vec3 axis) { @@ -55,7 +60,7 @@ mat4 rotationMatrix(vec3 axis, float angle) void main( void ) { - mat4 modelViewMatrix = u_modelViewMatrix * u_operationsTransformMatrix * u_sceneTransformMatrix * u_primitiveTransformMatrix; + mat4 nmodelViewMatrix = u_modelViewMatrix * u_operationsTransformMatrix * u_sceneTransformMatrix * u_primitiveTransformMatrix; mat4 transformMatrix; // TODO: use the aspect ratio of the slide instead. @@ -76,7 +81,16 @@ void main( void ) * rotationMatrix(vec3(0.0, 0.0, 1.0), pow(0.8 * (time - 1.0), 2.0) * M_PI) * invertSlideScaleMatrix; } - modelViewProjectionMatrix = u_projectionMatrix * modelViewMatrix * transformMatrix; + + if (shadow < 0.5) { + projectionMatrix = u_projectionMatrix; + shadowMatrix = orthoProjectionMatrix * orthoViewMatrix; + } else { + projectionMatrix = orthoProjectionMatrix * orthoViewMatrix; + shadowMatrix = mat4(0.0); + } + + modelViewMatrix = nmodelViewMatrix * transformMatrix; gl_Position = vec4(a_position, 1.0); } |