summaryrefslogtreecommitdiff
path: root/slideshow/opengl
diff options
context:
space:
mode:
authorEmmanuel Gil Peyrot <emmanuel.peyrot@collabora.com>2015-11-20 20:13:04 +0000
committerToma┼ż Vajngerl <tomaz.vajngerl@collabora.com>2015-11-20 21:48:57 +0100
commitf62990a835e4751366f0e499f2f9c9b92889c039 (patch)
treed2200efafd025f262874c8621a2c2dbf1be47d65 /slideshow/opengl
parent1f91c05c55a32375d27eb23219928d0f01d4bc00 (diff)
slideshow: Reimplement both Fade transitions in shaders
Change-Id: I94187b9316a206578bb738411053afe070703f09
Diffstat (limited to 'slideshow/opengl')
-rw-r--r--slideshow/opengl/fadeBlackFragmentShader.glsl50
-rw-r--r--slideshow/opengl/fadeFragmentShader.glsl42
2 files changed, 92 insertions, 0 deletions
diff --git a/slideshow/opengl/fadeBlackFragmentShader.glsl b/slideshow/opengl/fadeBlackFragmentShader.glsl
new file mode 100644
index 000000000000..7f80cc55adcb
--- /dev/null
+++ b/slideshow/opengl/fadeBlackFragmentShader.glsl
@@ -0,0 +1,50 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2015 by Collabora, Ltd.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#version 120
+
+uniform sampler2D leavingSlideTexture;
+uniform sampler2D enteringSlideTexture;
+uniform float time;
+varying vec2 v_texturePosition;
+
+void main() {
+ vec4 black = vec4(0.0, 0.0, 0.0, 1.0);
+ vec4 texel;
+ float amount;
+ if (time < 0.5) {
+ texel = texture2D(leavingSlideTexture, v_texturePosition);
+ amount = time * 2;
+ } else {
+ texel = texture2D(enteringSlideTexture, v_texturePosition);
+ amount = (1.0 - time) * 2;
+ }
+ gl_FragColor = mix(texel, black, amount);
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/slideshow/opengl/fadeFragmentShader.glsl b/slideshow/opengl/fadeFragmentShader.glsl
new file mode 100644
index 000000000000..aab848e3c917
--- /dev/null
+++ b/slideshow/opengl/fadeFragmentShader.glsl
@@ -0,0 +1,42 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2015 by Collabora, Ltd.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#version 120
+
+uniform sampler2D leavingSlideTexture;
+uniform sampler2D enteringSlideTexture;
+uniform float time;
+varying vec2 v_texturePosition;
+
+void main() {
+ vec4 leavingFragment = texture2D(leavingSlideTexture, v_texturePosition);
+ vec4 enteringFragment = texture2D(enteringSlideTexture, v_texturePosition);
+ gl_FragColor = mix(leavingFragment, enteringFragment, time);
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */