summaryrefslogtreecommitdiffhomepage
path: root/examples/shaders
diff options
context:
space:
mode:
authorRay <[email protected]>2021-03-17 19:03:51 +0100
committerRay <[email protected]>2021-03-17 19:03:51 +0100
commitff6d5c8ddbc3e49ee24a077086df5b2d6af52a5e (patch)
tree59cf266498981f4ac84ac16967a15532e05e9c42 /examples/shaders
parentaba69146f2eb4cb4bcd511f508cd702bfb81577b (diff)
downloadraylib-ff6d5c8ddbc3e49ee24a077086df5b2d6af52a5e.tar.gz
raylib-ff6d5c8ddbc3e49ee24a077086df5b2d6af52a5e.zip
REVIEWED: shaders_multi_sample2d
Diffstat (limited to 'examples/shaders')
-rw-r--r--examples/shaders/resources/shaders/glsl100/color_mix.fs8
-rw-r--r--examples/shaders/resources/shaders/glsl330/color_mix.fs6
-rw-r--r--examples/shaders/shaders_multi_sample2d.c14
3 files changed, 22 insertions, 6 deletions
diff --git a/examples/shaders/resources/shaders/glsl100/color_mix.fs b/examples/shaders/resources/shaders/glsl100/color_mix.fs
index 0074e6af..c5c0cb70 100644
--- a/examples/shaders/resources/shaders/glsl100/color_mix.fs
+++ b/examples/shaders/resources/shaders/glsl100/color_mix.fs
@@ -11,6 +11,8 @@ uniform sampler2D texture0;
uniform sampler2D texture1;
uniform vec4 colDiffuse;
+uniform float divider;
+
void main()
{
// Texel color fetching from texture sampler
@@ -18,7 +20,7 @@ void main()
vec4 texelColor1 = texture2D(texture1, fragTexCoord);
float x = fract(fragTexCoord.s);
- float out = smoothstep(0.4, 0.6, x);
+ float final = smoothstep(divider - 0.1, divider + 0.1, x);
- gl_FragColor = mix(texelColor0, texelColor1, out);
-} \ No newline at end of file
+ gl_FragColor = mix(texelColor0, texelColor1, final);
+}
diff --git a/examples/shaders/resources/shaders/glsl330/color_mix.fs b/examples/shaders/resources/shaders/glsl330/color_mix.fs
index 1ac7520a..761b3464 100644
--- a/examples/shaders/resources/shaders/glsl330/color_mix.fs
+++ b/examples/shaders/resources/shaders/glsl330/color_mix.fs
@@ -10,6 +10,8 @@ uniform sampler2D texture0;
uniform sampler2D texture1;
uniform vec4 colDiffuse;
+uniform float divider = 0.5;
+
out vec4 finalColor;
void main()
@@ -19,7 +21,7 @@ void main()
vec4 texelColor1 = texture(texture1, fragTexCoord);
float x = fract(fragTexCoord.s);
- float outVal = smoothstep(0.4, 0.6, x);
+ float final = smoothstep(divider - 0.1, divider + 0.1, x);
- finalColor = mix(texelColor0, texelColor1, outVal);
+ finalColor = mix(texelColor0, texelColor1, final);
} \ No newline at end of file
diff --git a/examples/shaders/shaders_multi_sample2d.c b/examples/shaders/shaders_multi_sample2d.c
index 2e545981..2ff6f200 100644
--- a/examples/shaders/shaders_multi_sample2d.c
+++ b/examples/shaders/shaders_multi_sample2d.c
@@ -45,6 +45,10 @@ int main(void)
// Get an additional sampler2D location to be enabled on drawing
int texBlueLoc = GetShaderLocation(shader, "texture1");
+
+ // Get shader uniform for divider
+ int dividerLoc = GetShaderLocation(shader, "divider");
+ float dividerValue = 0.5f;
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
@@ -54,7 +58,13 @@ int main(void)
{
// Update
//----------------------------------------------------------------------------------
- // ...
+ if (IsKeyDown(KEY_RIGHT)) dividerValue += 0.01f;
+ else if (IsKeyDown(KEY_LEFT)) dividerValue -= 0.01f;
+
+ if (dividerValue < 0.0f) dividerValue = 0.0f;
+ else if (dividerValue > 1.0f) dividerValue = 1.0f;
+
+ SetShaderValue(shader, dividerLoc, &dividerValue, SHADER_UNIFORM_FLOAT);
//----------------------------------------------------------------------------------
// Draw
@@ -75,6 +85,8 @@ int main(void)
DrawTexture(texRed, 0, 0, WHITE);
EndShaderMode();
+
+ DrawText("Use KEY_LEFT/KEY_RIGHT to move texture mixing in shader!", 80, GetScreenHeight() - 40, 20, RAYWHITE);
EndDrawing();
//----------------------------------------------------------------------------------