code wiki / _hdl_build / nx_world_png_gate.nx
nx_world_png_gate.nx source
↩ module page · 23 lines · 1054 B
1// nx_world_png_gate.nx -- FULLY SOVEREIGN render: spec -> 3D world -> PNG, no bash/python/zlib anywhere.
2// NishiLang -> nx_cc_sovereign(f32) -> nxasm -> native ELF that writes a directly-viewable PNG via nx_png.
3// exit 0 = wrote a PNG. license_tier: ORIGINAL
4import "nx_syscalls.nx"
5import "nx_voxel_world.nx"
6import "nx_png.nx"
7
8func mk(seed: i64, n: i64, water: i64, maxh: i64, latsp: i64,
9 psin: i64, pcos: i64, ysin: i64, ycos: i64, push: i64, focal: i64, style: i64) -> *i64 {
10 let s: *i64 = sys_mmap(12 * 8) as *i64
11 s[0] = seed; s[1] = n; s[2] = water; s[3] = maxh; s[4] = latsp
12 s[5] = psin; s[6] = pcos; s[7] = ysin; s[8] = ycos; s[9] = push; s[10] = focal; s[11] = style
13 return s
14}
15
16func main() -> i64 {
17 let fb: *i64 = sys_mmap(world_fb_bytes()) as *i64
18 let zb: *i64 = sys_mmap(world_fb_bytes()) as *i64
19 render_world(mk(7, 14, 1, 6, 4, 574, 819, 574, 819, 24, 300, 0), fb, zb)
20 let rc: i64 = write_png(fb, 320, 240, "web_assets/_game_build/world_sov.png" as *u8)
21 if rc != 0 { return 1 }
22 return 0
23}