code wiki / _hdl_build / nx_gx1c_canvas_gate.nx
nx_gx1c_canvas_gate.nx
buildroot/runtime/_hdl_build/nx_gx1c_canvas_gate.nx
about
nx_gx1c_canvas_gate.nx -- Gx-1c (seq103 EAT-BY-BUILD): <canvas> = a FIRST-CLASS sourceless render surface
in the LIVE Nishi-Browser + the PER-FRAME loop = the sovereign GAME SUBSTRATE. A fetched page DECLARES
<canvas>; br_layout gives it a real CSS-sized box in flow (page.bcanvas + br_find_canvas); the game loop
then drives frames: update world state (yaw) -> render the REAL nx_swgpu mesh pipeline (sg_humanoid +
sg_project + sg_render -- the seq103 DRY fold, NO inline rasterizer in this gate) -> point page.bimg at the
fresh buffer -> the browser repaints the whole page. Frame time MEASURED (mono clock, envelope declared).
Neg-control: a page WITHOUT <canvas> finds none. license_tier: ORIGINAL expect_exit: 0
dependencies 2 imports · 0 importers
imports: nx_browser_render.nxnx_swgpu.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| none |
functions
| 11 | func gxc_puts(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } called by 1: main |
| 12 | func gxc_pn(v: i64) -> i64 { let b: *u8=sys_mmap(32) as *u8; var x: i64=v; var ng: i64=0; if x<0{ng=1;x=0-x} var i: i64=31; if x==0{b[i]=48 as u8;i=i-1} while x>0{b[i]=(48+x%10) as u8;x=x/10;i=i-1} if ng==1{b[i]=45 as u8;i=i-1} sys_write(1,(b as i64+i+1) as *u8,31-i); return 0 } called by 1: main |
| 13 | func gxc_now_ms() -> i64 { let ts: *i64=sys_mmap(16) as *i64; sys_clock_gettime_mono(ts); return ts[0]*1000 + ts[1]/1000000 } |
| 16 | func gxc_fb_to_rgb(base: i64, dst: *u8) -> i64 |
| 29 | func main() -> i64 |