diff options
author | nathansmith117 <nathansmith117@sdf.org> | 2025-02-10 17:27:58 +0000 |
---|---|---|
committer | nathansmith117 <nathansmith117@sdf.org> | 2025-02-10 17:27:58 +0000 |
commit | 5798d82c8dbaf49bb30d90b10eb5fcab15956a0d (patch) | |
tree | 080f972a728d0c54677ecfa5face276369fd0720 | |
parent | db6e56cab84f004d8cee833b197d0cfc52014cd4 (diff) | |
download | sldj-5798d82c8dbaf49bb30d90b10eb5fcab15956a0d.tar.gz sldj-5798d82c8dbaf49bb30d90b10eb5fcab15956a0d.tar.bz2 sldj-5798d82c8dbaf49bb30d90b10eb5fcab15956a0d.zip |
Sleepyness
-rw-r--r-- | include/libsldj/util.h | 3 | ||||
-rw-r--r-- | src/sldj.c | 15 | ||||
-rw-r--r-- | src/sldj.h | 1 | ||||
-rw-r--r-- | test/scanTest3.c | 13 |
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 @@ -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) @@ -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 }; |