feat: arrow keys to control bpm/cycle

This commit is contained in:
2025-11-14 10:20:55 +01:00
parent 7739ac8254
commit f0c5ecab16
13 changed files with 77 additions and 23 deletions
+2
View File
@@ -37,6 +37,8 @@ UNIFORM_IN_FPS_PREFIX=iInputFPS
UNIFORM_DEMO=iDemo
# 0/1 if auto random
UNIFORM_AUTORAND=iAutoRand
# auto random cycle length
UNIFORM_AUTORANDCYCLE=iAutoRandCycle
# Current page
UNIFORM_PAGE=iPage
# Current selected shader
+14
View File
@@ -372,6 +372,20 @@ float write_int(vec2 uv, vec2 pos, uint value, uint magnitude)
return d;
}
float write_int_left(vec2 uv, vec2 pos, uint value, uint magnitude)
{
int i;
uint m = 1;
float d = 0;
for (i = 0; i < magnitude; i++) {
if (i == 0 || value >= m) {
pos.x += 1;
m *= 10u;
}
}
return write_int(uv, pos, value, magnitude);
}
int read(sampler2D tex, vec2 uv, float k, int d, float t)
{
float inv_k = 1 / k;
+8 -6
View File
@@ -15,6 +15,7 @@ uniform int iInputFormat2;
uniform int iDemo;
uniform int iAutoRand;
uniform int iAutoRandCycle;
uniform int iPage;
uniform int iSelected;
@@ -225,22 +226,22 @@ vec4 debug(vec2 vUV)
float x = 0;
x = -15;
f += write_5(uv3, vec2(x,13), texts[0]);
f += write_int(uv3, vec2(x - 3.5,13), iFPS, 3);
f += write_5(uv3, vec2(x - 4,13), texts[0]);
f += write_int(uv3, vec2(x + 1, 13), iFPS, 3);
v = min(1, iFPS/60.0);
f += h_rect(uv3, vec2(x, 12), vec2(4, 0.5), 0.2);
f += rect(uv3, vec2(x + 4 * v - 4, 12), vec2(4 * v, 0.4));
x = 0;
f += write_5(uv3, vec2(x,13), texts[1]);
f += write_int(uv3, vec2(x - 3.5,13), int(iTempo), 3);
f += write_5(uv3, vec2(x - 4,13), texts[1]);
f += write_int(uv3, vec2(x + 1,13), int(iTempo), 3);
v = fract(iBeats);
f += h_rect(uv3, vec2(x, 12), vec2(4, 0.5), 0.2);
f += rect(uv3, vec2(x + 4 * v - 4, 12), vec2(4 * v, 0.4));
x = 15;
f += write_5(uv3, vec2(x,13), texts[2]);
f += write_int(uv3, vec2(x - 5.5,13), int(iTime), 5);
f += write_5(uv3, vec2(x - 4,13), texts[2]);
f += write_int(uv3, vec2(x - 1,13), int(iTime), 5);
v = fract(iTime);
f += h_rect(uv3, vec2(x, 12), vec2(4, 0.5), 0.2);
f += rect(uv3, vec2(x + 4 * v - 4, 12), vec2(4 * v, 0.4));
@@ -248,6 +249,7 @@ vec4 debug(vec2 vUV)
if (iAutoRand > 0) {
f += write_5(uv3, vec2(-4,-15), iDemo > 0 ? texts[3] : texts[4]);
f += write_5(uv3, vec2(0,-15), texts[5]);
f += write_int_left(uv3, vec2(3, -15), iAutoRandCycle, 3);
} else {
f += write_5(uv3, vec2(-2,-15), iDemo > 0 ? texts[3] : texts[4]);
}