/usr/share/psychtoolbox-3/PsychOpenGL/PsychGLSLShaders/ParametricBoxBlurShader.frag.txt is in psychtoolbox-3-common 3.0.11.20140816.dfsg1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | /* Generic 2D box blur fragment shader for 2D rectangle textures.
// OpenGL program has to setup the texture unit 'FilterMap' with a lookup
// table texture for the per-outputpixel location boxfilter half-width and bind
// texture unit 'Image' with the image to be box-filtered. Texture filtering
// mode needs to be GL_NEAREST for defined results!
//
// (w)2007 by Mario Kleiner. Licensed under MIT license.
*/
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect Image;
uniform sampler2DRect FilterMap;
void main()
{
float dx, dy, count;
vec4 sum = vec4(0.0);
float HalfWidth;
HalfWidth = floor(0.5 + 255.0 * texture2DRect(FilterMap, gl_TexCoord[0].st).r);
for (dy = -HalfWidth; dy <= HalfWidth; dy++) {
for (dx = -HalfWidth; dx <= HalfWidth; dx++) {
sum += texture2DRect(Image, gl_TexCoord[0].st + vec2(dx, dy));
}
}
count = 2.0 * HalfWidth + 1.0;
gl_FragColor = sum / (count * count);
}
|