aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authornathansmith117 <nathansmith117@sdf.org>2025-02-10 13:18:18 +0000
committernathansmith117 <nathansmith117@sdf.org>2025-02-10 13:18:18 +0000
commitdb6e56cab84f004d8cee833b197d0cfc52014cd4 (patch)
treebbb53dfb0216aa87eabc5e24b6a2c0a81fa6251f /test
parentb04d5702719eca30a95d1db2a927b6605ebd3477 (diff)
downloadsldj-db6e56cab84f004d8cee833b197d0cfc52014cd4.tar.gz
sldj-db6e56cab84f004d8cee833b197d0cfc52014cd4.tar.bz2
sldj-db6e56cab84f004d8cee833b197d0cfc52014cd4.zip
Playing around with faster random numbers
Diffstat (limited to 'test')
-rw-r--r--test/scanTest1.c4
-rw-r--r--test/scanTest3.c40
2 files changed, 42 insertions, 2 deletions
diff --git a/test/scanTest1.c b/test/scanTest1.c
index c673e04..b03060a 100644
--- a/test/scanTest1.c
+++ b/test/scanTest1.c
@@ -23,8 +23,8 @@ Color lineScanner(uint16_t x, uint16_t y, uint32_t frameNumber)
c = frameNumber + hypot((x - 32768) >> scale, (y - 32768) >> scale);
}
} else {
- uint8_t c1 = (x >> 8) + (uint8_t)(hypot(x >> 8, y >> 8) * (frameNumber % 255));
- uint8_t c2 = (x >> 8) + (uint8_t)(hypot(cos(x >> scale), sin(y >> scale)) * (frameNumber % 255));
+ uint8_t c1 = (x >> 8) + (uint8_t)(hypot(x >> 8, y >> 8) * (frameNumber % 255));
+ uint8_t c2 = (x >> 8) + (uint8_t)(hypot(cos(x >> scale), sin(y >> scale)) * (frameNumber % 255));
uint8_t c3 = frameNumber + hypot((x - 32768) >> scale, (y - 32768) >> scale);
c = c1 & c2 & c3;
diff --git a/test/scanTest3.c b/test/scanTest3.c
new file mode 100644
index 0000000..1a0c3ec
--- /dev/null
+++ b/test/scanTest3.c
@@ -0,0 +1,40 @@
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <math.h>
+#include <time.h>
+
+#include "libsldj/util.h"
+
+uint8_t lastValue = 200;
+
+// Rerendered noise.
+#define VALUES_SIZE 65536
+uint8_t values[VALUES_SIZE];
+
+void loadContext(SldjContext context)
+{
+ srandom(time(NULL));
+
+ for (int i = 0; i < VALUES_SIZE; ++i)
+ {
+ values[i] = random() % 256;
+ }
+}
+
+int s = 100;
+
+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));
+
+ return (Color){
+ .r = (c + b) << 1,
+ .g = b,
+ .b = c,
+ .a = 255
+ };
+}
+