aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornathansmith117 <nathansmith117@sdf.org>2025-02-10 17:27:58 +0000
committernathansmith117 <nathansmith117@sdf.org>2025-02-10 17:27:58 +0000
commit5798d82c8dbaf49bb30d90b10eb5fcab15956a0d (patch)
tree080f972a728d0c54677ecfa5face276369fd0720
parentdb6e56cab84f004d8cee833b197d0cfc52014cd4 (diff)
downloadsldj-5798d82c8dbaf49bb30d90b10eb5fcab15956a0d.tar.gz
sldj-5798d82c8dbaf49bb30d90b10eb5fcab15956a0d.tar.bz2
sldj-5798d82c8dbaf49bb30d90b10eb5fcab15956a0d.zip
Sleepyness
-rw-r--r--include/libsldj/util.h3
-rw-r--r--src/sldj.c15
-rw-r--r--src/sldj.h1
-rw-r--r--test/scanTest3.c13
4 files changed, 24 insertions, 8 deletions
diff --git a/include/libsldj/util.h b/include/libsldj/util.h
index 2c8dff6..8edf4dc 100644
--- a/include/libsldj/util.h
+++ b/include/libsldj/util.h
@@ -22,6 +22,9 @@
#define SLDJ_HYPOT2(x, y) (SLDJ_SQRT(x * x + y * y))
#define SLDJ_HYPOT3(x, y, z) (SLDJ_SQRT(x * x + y * y + z * z))
+#define SLDJ_RANDOM16(seed) (seed = (75 * seed + 74) % 65537)
+#define SLDJ_RANDOM32(seed) (seed = (1664525 * seed + 1013904223) % 4294967296)
+
// Stuff stolen from raylib/raymath
#ifndef RL_COLOR_TYPE
#define RL_COLOR_TYPE
diff --git a/src/sldj.c b/src/sldj.c
index f8c1817..c900995 100644
--- a/src/sldj.c
+++ b/src/sldj.c
@@ -5,6 +5,8 @@ void initSldj(Sldj* sldj)
// Create window.
InitWindow(WINDOW_WIDTH, WINDOW_HEIGHT, "Scanline DJ");
SetWindowState(FLAG_WINDOW_RESIZABLE);
+
+ sldj->isPaused = false;
//SetTargetFPS(DEFAULT_FRAME_RATE);
sldj->targetFps = DEFAULT_FRAME_RATE;
@@ -26,7 +28,7 @@ void updateSldj(Sldj* sldj)
// Scan image.
BeginTextureMode(sldj->viewport);
- if (sldj->scripting.lineScanner != NULL)
+ if (!sldj->isPaused && sldj->scripting.lineScanner != NULL)
{
uint16_t xScan = 0;
uint16_t yScan = 0;
@@ -43,6 +45,8 @@ void updateSldj(Sldj* sldj)
yScan += sldj->yCount;
}
+
+ ++sldj->frameCounter;
}
EndTextureMode();
@@ -62,14 +66,19 @@ void updateSldj(Sldj* sldj)
DrawFPS(0, viewport.height);
+ // Handle input.
if (IsKeyPressed(KEY_R))
{
reloadScript(sldj);
+ sldj->isPaused = false;
}
- EndDrawing();
+ if (IsKeyPressed(KEY_SPACE))
+ {
+ sldj->isPaused = !sldj->isPaused;
+ }
- ++sldj->frameCounter;
+ EndDrawing();
}
void closeSldj(Sldj* sldj)
diff --git a/src/sldj.h b/src/sldj.h
index d64b99c..a577a60 100644
--- a/src/sldj.h
+++ b/src/sldj.h
@@ -15,6 +15,7 @@
typedef struct Sldj {
RenderTexture viewport;
+ bool isPaused;
uint8_t targetFps;
uint32_t frameCounter;
diff --git a/test/scanTest3.c b/test/scanTest3.c
index 1a0c3ec..29559c3 100644
--- a/test/scanTest3.c
+++ b/test/scanTest3.c
@@ -22,17 +22,20 @@ void loadContext(SldjContext context)
}
}
-int s = 100;
+int s = 102;
Color lineScanner(uint16_t x, uint16_t y, uint32_t frameNumber)
{
// Shifts around the noise to make it look better.
- uint8_t c = values[((x + (frameNumber >> 2)) + (y << 1)) % VALUES_SIZE];
- uint8_t b = frameNumber + SLDJ_HYPOT2(((x - 32768) >> 6), ((y - 32768) >> 6));
+ //uint8_t c = values[((x + (frameNumber >> 2)) + (y << 1)) % VALUES_SIZE];
+
+ uint8_t c = SLDJ_RANDOM16(s) >> 8;
+ //uint8_t c = SLDJ_RANDOM32(s) >> 24;
+ //uint8_t c = random();
return (Color){
- .r = (c + b) << 1,
- .g = b,
+ .r = c * 10,
+ .g = c + 127,
.b = c,
.a = 255
};