#version 150 in vec2 texCoord; uniform sampler2DRect colorTexture; uniform float inset; out vec4 fragColor; void main() { vec4 color = texture(colorTexture, texCoord); vec2 changePerTexel = fwidth(texCoord); vec2 fraction = mod(texCoord, 1.0); vec2 colorMixesMin = min(vec2(inset, inset), fraction / changePerTexel); vec2 colorMixesMax = min(vec2(inset, inset), (1.0 - fraction) / changePerTexel); vec2 colorMixes = min(colorMixesMin, colorMixesMax); float colorMix = 0.5 + smoothstep(inset - 0.125, inset - 0.0625, min(colorMixes.x, colorMixes.y)) * 0.5; fragColor = color * colorMix; }