Added support for shaders written in non-legacy GLSL.

This commit is contained in:
binary1248 2018-05-20 14:06:24 +02:00
parent 1dcad60878
commit db7e683688
No known key found for this signature in database
GPG key ID: E5E52A5D6082224A
18 changed files with 690 additions and 74 deletions

View file

@ -1,29 +1,32 @@
uniform sampler2D texture;
uniform float edge_threshold;
varying vec4 texCoord;
varying vec4 frontColor;
void main()
{
const float offset = 1.0 / 512.0;
vec2 offx = vec2(offset, 0.0);
vec2 offy = vec2(0.0, offset);
vec4 hEdge = texture2D(texture, gl_TexCoord[0].xy - offy) * -2.0 +
texture2D(texture, gl_TexCoord[0].xy + offy) * 2.0 +
texture2D(texture, gl_TexCoord[0].xy - offx - offy) * -1.0 +
texture2D(texture, gl_TexCoord[0].xy - offx + offy) * 1.0 +
texture2D(texture, gl_TexCoord[0].xy + offx - offy) * -1.0 +
texture2D(texture, gl_TexCoord[0].xy + offx + offy) * 1.0;
vec4 hEdge = texture2D(texture, texCoord.xy - offy) * -2.0 +
texture2D(texture, texCoord.xy + offy) * 2.0 +
texture2D(texture, texCoord.xy - offx - offy) * -1.0 +
texture2D(texture, texCoord.xy - offx + offy) * 1.0 +
texture2D(texture, texCoord.xy + offx - offy) * -1.0 +
texture2D(texture, texCoord.xy + offx + offy) * 1.0;
vec4 vEdge = texture2D(texture, gl_TexCoord[0].xy - offx) * 2.0 +
texture2D(texture, gl_TexCoord[0].xy + offx) * -2.0 +
texture2D(texture, gl_TexCoord[0].xy - offx - offy) * 1.0 +
texture2D(texture, gl_TexCoord[0].xy - offx + offy) * -1.0 +
texture2D(texture, gl_TexCoord[0].xy + offx - offy) * 1.0 +
texture2D(texture, gl_TexCoord[0].xy + offx + offy) * -1.0;
vec4 vEdge = texture2D(texture, texCoord.xy - offx) * 2.0 +
texture2D(texture, texCoord.xy + offx) * -2.0 +
texture2D(texture, texCoord.xy - offx - offy) * 1.0 +
texture2D(texture, texCoord.xy - offx + offy) * -1.0 +
texture2D(texture, texCoord.xy + offx - offy) * 1.0 +
texture2D(texture, texCoord.xy + offx + offy) * -1.0;
vec3 result = sqrt(hEdge.rgb * hEdge.rgb + vEdge.rgb * vEdge.rgb);
float edge = length(result);
vec4 pixel = gl_Color * texture2D(texture, gl_TexCoord[0].xy);
vec4 pixel = frontColor * texture2D(texture, texCoord.xy);
if (edge > (edge_threshold * 8.0))
pixel.rgb = vec3(0.0, 0.0, 0.0);
else