aboutsummaryrefslogtreecommitdiff
path: root/deps/raylib/examples/text/resources/shaders/glsl330/sdf.fs
diff options
context:
space:
mode:
Diffstat (limited to 'deps/raylib/examples/text/resources/shaders/glsl330/sdf.fs')
-rw-r--r--deps/raylib/examples/text/resources/shaders/glsl330/sdf.fs26
1 files changed, 26 insertions, 0 deletions
diff --git a/deps/raylib/examples/text/resources/shaders/glsl330/sdf.fs b/deps/raylib/examples/text/resources/shaders/glsl330/sdf.fs
new file mode 100644
index 0000000..545f450
--- /dev/null
+++ b/deps/raylib/examples/text/resources/shaders/glsl330/sdf.fs
@@ -0,0 +1,26 @@
+#version 330
+
+// Input vertex attributes (from vertex shader)
+in vec2 fragTexCoord;
+in vec4 fragColor;
+
+// Input uniform values
+uniform sampler2D texture0;
+uniform vec4 colDiffuse;
+
+// Output fragment color
+out vec4 finalColor;
+
+// NOTE: Add here your custom variables
+
+void main()
+{
+ // Texel color fetching from texture sampler
+ // NOTE: Calculate alpha using signed distance field (SDF)
+ float distanceFromOutline = texture(texture0, fragTexCoord).a - 0.5;
+ float distanceChangePerFragment = length(vec2(dFdx(distanceFromOutline), dFdy(distanceFromOutline)));
+ float alpha = smoothstep(-distanceChangePerFragment, distanceChangePerFragment, distanceFromOutline);
+
+ // Calculate final fragment color
+ finalColor = vec4(fragColor.rgb, fragColor.a*alpha);
+}