blob: 1a0c3ecdf360a6a6eb3a119ec613f2fb1c6e6f89 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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
};
}
|