nx_gltf_rig_descriptor_gate_t230.nx source
↩ module page · 33 lines · 3806 B
1import "nx_gltf_rig_descriptor_candidate_t230.nx"
2func grt_fixture(j:*u8,pass:i64)->i64{
3 let jn:i64=gll_slen(j);let padded:i64=(jn+3)/4*4;let n:i64=28+padded+128;let src:*u8=sys_mmap(n)
4 glp_u32(src,0,0x46546c67);glp_u32(src,4,2);glp_u32(src,8,n);glp_u32(src,12,padded);glp_u32(src,16,0x4e4f534a)
5 var i:i64=0;while i<jn{src[20+i]=j[i];i=i+1};while i<padded{src[20+i]=32 as u8;i=i+1};glp_u32(src,20+padded,128);glp_u32(src,24+padded,0x004e4942)
6 let cx:*i64=sys_mmap(GLD_CONTEXT_WORDS*8) as *i64;let w:*i64=sys_mmap(32) as *i64;i=0;while i<4{w[i]=0;i=i+1}
7 var rc:i64=gltf_view_open(src,n,cx);if rc==0{rc=gltf_rig_descriptor(cx,0,w)}
8 var ok:i64=0;if pass==1&&rc==0&&w[2]>0{ok=1};if pass==0&&rc!=0{ok=1}
9 gltf_view_close(cx);sys_munmap(cx as *u8,GLD_CONTEXT_WORDS*8);sys_munmap(w as *u8,32);sys_munmap(src,n);return ok
10}
11func main()->i64{
12 var passed:i64=0
13 passed=passed+grt_fixture("{\"asset\":{\"version\":\"2.0\"},\"buffers\":[{\"byteLength\":128}],\"nodes\":[{\"name\":\"same\",\"children\":[1],\"translation\":[1,2,3]},{\"name\":\"same\"}],\"skins\":[{\"joints\":[1,0]}]}",1)
14 passed=passed+grt_fixture("{\"asset\":{\"version\":\"2.0\"},\"buffers\":[{\"byteLength\":128}],\"nodes\":[{\"children\":[1]},{\"children\":[0]}],\"skins\":[{\"joints\":[0,1]}]}",0)
15 passed=passed+grt_fixture("{\"asset\":{\"version\":\"2.0\"},\"buffers\":[{\"byteLength\":128}],\"nodes\":[{},{}],\"skins\":[{\"joints\":[0,0]}]}",0)
16 passed=passed+grt_fixture("{\"asset\":{\"version\":\"2.0\"},\"buffers\":[{\"byteLength\":128}],\"nodes\":[{},{}],\"skins\":[{\"joints\":[0,2]}]}",0)
17 passed=passed+grt_fixture("{\"asset\":{\"version\":\"2.0\"},\"buffers\":[{\"byteLength\":128}],\"nodes\":[{\"name\":33}],\"skins\":[{\"joints\":[0]}]}",0)
18 passed=passed+grt_fixture("{\"asset\":{\"version\":\"2.0\"},\"buffers\":[{\"byteLength\":128}],\"nodes\":[{\"matrix\":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],\"translation\":[1,2,3]}],\"skins\":[{\"joints\":[0]}]}",0)
19 passed=passed+grt_fixture("{\"asset\":{\"version\":\"2.0\"},\"buffers\":[{\"byteLength\":128}],\"nodes\":[{}],\"skins\":[{\"joints\":[0],\"skeleton\":5}]}",0)
20 passed=passed+grt_fixture("{\"asset\":{\"version\":\"2.0\"},\"buffers\":[{\"byteLength\":128}],\"nodes\":[{}],\"skins\":[{\"joints\":[0],\"skeleton\":\"0\"}]}",0)
21 passed=passed+grt_fixture("{\"asset\":{\"version\":\"2.0\"},\"buffers\":[{\"byteLength\":128}],\"nodes\":[{},{}],\"skins\":[{\"joints\":[0],\"skeleton\":1}]}",0)
22 passed=passed+grt_fixture("{\"asset\":{\"version\":\"2.0\"},\"buffers\":[{\"byteLength\":128}],\"nodes\":[{}],\"skins\":[{\"joints\":[0],\"inverseBindMatrices\":\"0\"}]}",0)
23 passed=passed+grt_fixture("{\"asset\":{\"version\":\"2.0\"},\"buffers\":[{\"byteLength\":128}],\"nodes\":[{}],\"skins\":[{\"joints\":[0],\"inverseBindMatrices\":0}]}",0)
24 if passed!=11{sys_write(1,"RIG_FIXTURES_RED\n",17);return 1}
25 let ln:*i64=sys_mmap(16) as *i64;let source:*u8=sys_read_file("../knowledge/fetched/rigmodels-tifa-catwalk-143925f3.glb",ln);if (source as i64)==0{return 2}
26 let cx:*i64=sys_mmap(GLD_CONTEXT_WORDS*8) as *i64;if gltf_view_open(source,ln[0],cx)!=0{return 3}
27 let w:*i64=sys_mmap(32) as *i64;var i:i64=0;while i<4{w[i]=0;i=i+1};if gltf_rig_descriptor(cx,0,w)!=0{return 4}
28 let n:i64=w[2];let data:*u8=sys_mmap_try(n);if (data as i64)==0{return 5};w[0]=data as i64;w[1]=n;w[2]=0;w[3]=0
29 if gltf_rig_descriptor(cx,0,w)!=0||w[2]!=n{return 6}
30 let fd:i64=sys_openat_wr("knowledge/gates/source-rig-t230.json",MODE_0644);if fd<0{return 7};let written:i64=sys_write(fd,data,n);sys_close(fd);if written!=n{return 8}
31 gltf_view_close(cx);sys_free_file(source,ln[0]);sys_munmap_direct(data,n);sys_munmap(cx as *u8,GLD_CONTEXT_WORDS*8);sys_munmap(w as *u8,32);sys_munmap(ln as *u8,16)
32 let message:*u8="RIG_FIXTURES=11/11 ACTUAL_WRITTEN\n";sys_write(1,message,gll_slen(message));return 0
33}