convolutionFragmentShader.glsl 865 B

123456789101112131415161718192021222324252627282930
  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. /* TODO Use textureOffset for newest version of GLSL */
  10. #version 130
  11. uniform sampler2D sampler;
  12. uniform vec2 offsets[16];
  13. uniform float kernel[16];
  14. varying vec2 tex_coord;
  15. void main(void)
  16. {
  17. vec4 sum = texture2D(sampler, tex_coord.st) * kernel[0];
  18. for (int i = 1; i < 16; i++) {
  19. sum += texture2D(sampler, tex_coord.st - offsets[i]) * kernel[i];
  20. sum += texture2D(sampler, tex_coord.st + offsets[i]) * kernel[i];
  21. }
  22. gl_FragColor = sum;
  23. }
  24. /* vim:set shiftwidth=4 softtabstop=4 expandtab: */