code wiki / _hdl_build / nx_wpt_dim_probe.nx
nx_wpt_dim_probe.nx source
↩ module page · 23 lines · 1745 B
1// nx_wpt_dim_probe.nx -- DIAGNOSTIC (measure-first): render flex-grow-002 + its green-square ref to BMP and
2// print each canvas's width/height, so we can SEE why the reftest reports a 999999 dimension-mismatch.
3import "nx_syscalls.nx"
4import "nx_render_html.nx"
5func g_w(s: *u8) -> i64 { var k: i64=0; while s[k]!=(0 as u8){k=k+1} sys_write(1,s,k); return 0 }
6func pn(v0: i64) -> i64 { var v: i64=v0; if v<0 { let m: *u8=sys_mmap(8); m[0]=45 as u8; sys_write(1,m,1); v=0-v } let b: *u8=sys_mmap(24); var k: i64=0; if v==0 {b[0]=48;k=1} while v>0 {b[k]=(48+(v%10)) as u8; v=v/10; k=k+1} let o: *u8=sys_mmap(24); var j: i64=0; while j<k {o[j]=b[k-1-j];j=j+1} sys_write(1,o,k); return 0 }
7func u32le(d: *u8, p: i64) -> i64 { return (d[p]&0xff) + ((d[p+1]&0xff)<<8) + ((d[p+2]&0xff)<<16) + ((d[p+3]&0xff)<<24) }
8func dims(path: *u8, outbmp: *u8, label: *u8) -> i64 {
9 let lp: *i64 = sys_mmap(8) as *i64
10 let t: *u8 = sys_read_file(path, lp); let tl: i64 = lp[0]
11 if tl <= 0 { g_w(label); g_w(": READ FAIL\n" as *u8); return 0 }
12 let nb: i64 = nx_render_html_to_bmp(t, tl, outbmp)
13 let a: *u8 = sys_read_file(outbmp, lp); let la: i64 = lp[0]
14 if la < 54 { g_w(label); g_w(": BMP FAIL\n" as *u8); return 0 }
15 g_w(label); g_w(": w=" as *u8); pn(u32le(a,18)); g_w(" h=" as *u8); pn(u32le(a,22)); g_w(" boxes=" as *u8); pn(nb); g_w("\n" as *u8)
16 return 0
17}
18func main() -> i64 {
19 g_w("=== flex-grow-002 dimension probe ===\n" as *u8)
20 dims("knowledge/wpt/flex-grow-002.html\x00" as *u8, "knowledge/status/dimp_t.bmp\x00" as *u8, "TEST flex-grow-002\x00" as *u8)
21 dims("knowledge/wpt/ref-filled-green-100px-square.xht\x00" as *u8, "knowledge/status/dimp_r.bmp\x00" as *u8, "REF green-square \x00" as *u8)
22 return 0
23}