glitterFragmentShader.glsl 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
  2. /*
  3. * This file is part of the LibreOffice project.
  4. *
  5. * This Source Code Form is subject to the terms of the Mozilla Public
  6. * License, v. 2.0. If a copy of the MPL was not distributed with this
  7. * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  8. */
  9. #version 120
  10. #define M_PI 3.1415926535897932384626433832795
  11. uniform sampler2D leavingSlideTexture;
  12. uniform sampler2D enteringSlideTexture;
  13. varying vec2 v_texturePosition;
  14. varying vec3 v_normal;
  15. uniform float time;
  16. varying float angle;
  17. void main() {
  18. vec3 lightVector = vec3(0.0, 0.0, 1.0);
  19. float light = dot(lightVector, v_normal);
  20. vec4 fragment;
  21. if (angle < M_PI)
  22. fragment = texture2D(leavingSlideTexture, v_texturePosition);
  23. else
  24. fragment = texture2D(enteringSlideTexture, v_texturePosition);
  25. vec4 black = vec4(0.0, 0.0, 0.0, fragment.a);
  26. gl_FragColor = mix(black, fragment, max(light, 0.0));
  27. }
  28. /* vim:set shiftwidth=4 softtabstop=4 expandtab: */