summaryrefslogtreecommitdiff
path: root/slideshow/opengl/honeycombVertexShader.glsl
diff options
context:
space:
mode:
authorEmmanuel Gil Peyrot <emmanuel.peyrot@collabora.com>2016-02-09 23:59:16 +0000
committerMichael Meeks <michael.meeks@collabora.com>2016-02-09 23:59:52 +0000
commitd323f2487d84fbd3909cd2166b98a2a875b71bf8 (patch)
tree6a76c24bfb28cc632d8261435263d7be8b2772ef /slideshow/opengl/honeycombVertexShader.glsl
parent1f8ddf1b8ff4727473676de9c7fda24b49b9599d (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.glsl20
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);
}