12 {
13 auto *e = ctx.mEngine.get();
14 e->get_ready();
15 e->run_default_oscillators(0.001);
16
17 for (
int x = 0;
x < e->num_x;
x++) {
18 for (
int y = 0;
y < e->num_y;
y++) {
19 e->animation.dist = e->distance[
x][
y];
20 e->animation.angle = e->polar_theta[
x][
y];
21
22 e->animation.scale_x = 0.07 + e->move.directional[0] * 0.002;
23 e->animation.scale_y = 0.07;
24
25 e->animation.offset_y = -e->move.linear[0];
26 e->animation.offset_x = 0;
27 e->animation.offset_z = 0;
28
29 e->animation.z = 0;
30 e->animation.low_limit = -1;
31 float show1 = e->render_value(e->animation);
32
33 e->animation.offset_y = -e->move.linear[1];
34 float show3 = e->render_value(e->animation);
35
36 e->animation.offset_x = show3 / 20;
37 e->animation.offset_y = -e->move.linear[0] / 2 + show1 / 70;
38 e->animation.low_limit = 0;
39 float show2 = e->render_value(e->animation);
40
41 e->animation.offset_x = show3 / 20;
42 e->animation.offset_y = -e->move.linear[0] / 2 + show1 / 70;
43 e->animation.z = 100;
44 float show4 = e->render_value(e->animation);
45
46 float radius = e->radial_filter_radius;
47 float radial = (radius - e->animation.dist) / e->animation.dist;
48
49 float linear = (
y + 1) / (e->num_y - 1.f);
50
51 e->pixel.red = radial * show2;
52 e->pixel.green = linear * radial * 0.3 * (show2 - show4);
53 e->pixel.blue = 0;
54
55 e->pixel = e->rgb_sanity_check(e->pixel);
56 e->setPixelColorInternal(
x,
y, e->pixel);
57 }
58 }
59}