1+ #ifdef GL_ES
2+ precision mediump float ;
3+ precision mediump int ;
4+ #endif
5+
6+ uniform sampler2D texture;
7+ uniform vec2 texOffset;
8+
9+ varying vec4 vertColor;
10+ varying vec4 vertTexCoord;
11+
12+ const vec4 lumcoeff = vec4 (0.299 , 0.587 , 0.114 , 0 );
13+
14+ void main() {
15+ vec2 tc0 = vertTexCoord.st + vec2 (- texOffset.s, - texOffset.t);
16+ vec2 tc1 = vertTexCoord.st + vec2 ( 0.0 , - texOffset.t);
17+ vec2 tc2 = vertTexCoord.st + vec2 (+ texOffset.s, - texOffset.t);
18+ vec2 tc3 = vertTexCoord.st + vec2 (- texOffset.s, 0.0 );
19+ vec2 tc4 = vertTexCoord.st + vec2 ( 0.0 , 0.0 );
20+ vec2 tc5 = vertTexCoord.st + vec2 (+ texOffset.s, 0.0 );
21+ vec2 tc6 = vertTexCoord.st + vec2 (- texOffset.s, + texOffset.t);
22+ vec2 tc7 = vertTexCoord.st + vec2 ( 0.0 , + texOffset.t);
23+ vec2 tc8 = vertTexCoord.st + vec2 (+ texOffset.s, + texOffset.t);
24+
25+ vec4 col0 = texture2D (texture, tc0);
26+ vec4 col1 = texture2D (texture, tc1);
27+ vec4 col2 = texture2D (texture, tc2);
28+ vec4 col3 = texture2D (texture, tc3);
29+ vec4 col4 = texture2D (texture, tc4);
30+ vec4 col5 = texture2D (texture, tc5);
31+ vec4 col6 = texture2D (texture, tc6);
32+ vec4 col7 = texture2D (texture, tc7);
33+ vec4 col8 = texture2D (texture, tc8);
34+
35+ vec4 sum = 8.0 * col4 - (col0 + col1 + col2 + col3 + col5 + col6 + col7 + col8);
36+ gl_FragColor = vec4 (sum.rgb, 1.0 ) * vertColor;
37+ }
0 commit comments