/usr/share/openmsx/shaders/tv.frag is in openmsx-data 0.10.0-1ubuntu1.
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 30 31 32 33 34 35 36 37 38 | // TV-like effect where bright pixels are larger than dark pixels.
uniform sampler2D tex;
uniform sampler2D videoTex;
uniform float minScanline;
uniform float sizeVariance;
varying vec4 intCoord;
varying vec4 cornerCoord0;
varying vec4 cornerCoord1;
vec4 calcCorner(const vec2 texCoord0,
const vec2 texCoord1,
const float dist)
{
vec4 col0 = texture2D(tex, texCoord0);
#if SUPERIMPOSE
vec4 vid = texture2D(videoTex, texCoord1);
vec4 col = mix(vid, col0, col0.a);
#else
vec4 col = col0;
#endif
return col * smoothstep(
minScanline + sizeVariance * (vec4(1.0) - col),
vec4(1.0),
vec4(dist));
}
void main()
{
vec4 distComp = fract(intCoord);
gl_FragColor = mix(
calcCorner(cornerCoord0.xy, cornerCoord1.xy, distComp.w) +
calcCorner(cornerCoord0.xw, cornerCoord1.xw, distComp.y),
calcCorner(cornerCoord0.zy, cornerCoord1.zy, distComp.w) +
calcCorner(cornerCoord0.zw, cornerCoord1.zw, distComp.y),
smoothstep(0.0, 1.0, distComp.x));
}
|