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}