mirror of
https://github.com/exoticorn/microw8.git
synced 2026-01-20 11:16:42 +01:00
tic(i32) => upd(), time(), first version of palette
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,15 @@
|
||||
import "env.memory" memory(4);
|
||||
|
||||
import "env.cos" fn cos(f32) -> f32;
|
||||
|
||||
export fn time() -> i32 {
|
||||
0!64
|
||||
}
|
||||
|
||||
export fn ftime() -> f32 {
|
||||
(0!64) as f32 / 1000 as f32
|
||||
}
|
||||
|
||||
global mut randomState: i64 = 37i64;
|
||||
|
||||
export fn random() -> i32 {
|
||||
@@ -108,11 +118,58 @@ export fn circle(cx: f32, cy: f32, radius: f32, col: i32) {
|
||||
}
|
||||
|
||||
start fn setup() {
|
||||
let i: i32;
|
||||
loop colors {
|
||||
(i*4)!(120+320*240) = i * 0x10101;
|
||||
branch_if (i := i + 1) < 256: colors
|
||||
let i: i32 = 12*16*3-1;
|
||||
let avg: f32;
|
||||
loop gradients {
|
||||
let lazy scale = (i % 48) as f32 / 48 as f32;
|
||||
let inline angle = i as f32 * (3.1416 / 1.5 - 3.1416 / (11.0 * 16.0 * 1.5));
|
||||
let lazy c = 0.4 - cos(angle);
|
||||
let inline ulimit = avg + 0.8;
|
||||
let inline llimit = avg - 0.8;
|
||||
let lazy a = max(llimit, min(ulimit, c)) * (scale + 0.05);
|
||||
let lazy b = scale * scale * 0.8;
|
||||
let inline v = (select(i < 11*16*3, max(0 as f32, min(a + b - a * b, 1 as f32)), scale) * 255 as f32) as i32;
|
||||
(i%3 + i/3*4)?(120+320*240) = v;
|
||||
avg = (avg + c) * 0.5;
|
||||
|
||||
branch_if i := i - 1: gradients;
|
||||
}
|
||||
|
||||
i = 255;
|
||||
loop expand_sweetie {
|
||||
let lazy channel = i & 3;
|
||||
let lazy index = i >> 2;
|
||||
let lazy first_step = index >= 32;
|
||||
let inline src1 = select(first_step, index % 32 / 2, index * 2);
|
||||
let inline src2 = select(first_step, (index + 1) % 32 / 2, index * 2 + 1);
|
||||
let inline c1 = (src1 * 4 + channel)?(120+320*240+192*4);
|
||||
let inline c2 = (src2 * 4 + channel)?(120+320*240+192*4);
|
||||
i?(120+320*240+192*4) = (c1 + c2) * (3 + first_step) / 8;
|
||||
|
||||
branch_if (i := i - 1) >= 0: expand_sweetie;
|
||||
}
|
||||
|
||||
cls(0);
|
||||
randomSeed(random());
|
||||
}
|
||||
}
|
||||
|
||||
data 120+320*240+192*4 {
|
||||
i32(
|
||||
0x2c1c1a,
|
||||
0x5d275d,
|
||||
0x533eb1,
|
||||
0x577def,
|
||||
0x75cdff,
|
||||
0x70f0a7,
|
||||
0x64b738,
|
||||
0x797125,
|
||||
0x6f3629,
|
||||
0xc95d3b,
|
||||
0xf6a641,
|
||||
0xf7ef73,
|
||||
0xf4f4f4,
|
||||
0xc2b094,
|
||||
0x866c56,
|
||||
0x573c33
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user