code wiki / (root) / nx_pe_dll_d3d11ctx.nx

nx_pe_dll_d3d11ctx.nx

buildroot/runtime/nx_pe_dll_d3d11ctx.nx

10837 B205 linesdepth 4pulls 6 transitivereach 0 importersview sourcekind tooltopic pe
docsdependenciesstructsconstsfunctions

about

nx_pe_dll_d3d11ctx.nx -- ACCEPTANCE SLICE: a real multi-interface D3D11 render through the COM API. Data-driven generation of TWO vtables -- ID3D11Device (43 slots) + ID3D11DeviceContext (108 slots) -- from slot tables. A foreign process: create device -> dev->GetImmediateContext(&ctx) [dev slot 40] -> dev->CreateRenderTargetView(buf,..,&rtv) [dev slot 9] -> ctx->ClearRenderTargetView(rtv, FLOAT[4]) [ctx slot 50] -> the render target buffer is filled with the UNORM8 color (round(f*255), the D3D spec already WARP-validated). Object mem: [0]dev_vtbl [1]dev_rc [2]ctx_vtbl [3]ctx_rc [4]rtv_buffer; context=&mem[2], RTV=&mem[4]. Method bodies = sovereign nx_cc NishiLang (float via sys_mmap-free nx_f32_hw); vtables+factory+thunks = sovereign emitter glue. Graded vs Microsoft <d3d11.h> slots. ⚠baked @ fixed base 0x180000000. Input /tmp/nishi_export_lib.s Output knowledge/nishi_d3d11ctx.dll license_tier: ORIGINAL expect_exit: 0

dependencies 3 imports · 0 importers

nx_syscalls.nx nxasm_x86.nx nx_pe_writer.nx nx_pe_dll_d3d11ctx.nx

imports: nx_syscalls.nxnxasm_x86.nxnx_pe_writer.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main d11_puts sys_write sys_mmap sys_read_file sys_openat_rd sys_lseek sys_mmap ↻ sys_read sys_close sys_exit d11_assemble sys_mmap ↻ axc_pass axc_is_space axc_is_ident axc_apply_section axc_tok_is axc_cstr_len axc_is_space ↻ axc_is_ident ↻ axc_tok_is ↻ axc_emit_bytes axc_is_digit axc_parse_int axc_is_digit ↻ axc_parse_operand axc_is_space ↻ axc_is_ident ↻ axc_reg_num axc_tok_is ↻ axc_parse_int ↻ axc_is_digit ↻ axc_tok_is ↻ axc_emit axc_tok_is ↻ axc_alu x86_alu_imm x86_rex_w x86_modrm

structs

none

consts

13const N_DEV: i64 = 43
14const N_CTX: i64 = 108

functions

16func d11_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 calls 1: sys_write
17func d11_putn(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 calls 2: sys_mmapsys_write
18func d11_wstr(buf: *u8, off: i64, s: *u8) -> i64 { var i: i64=0; while s[i]!=(0 as u8){ buf[off+i]=s[i]; i=i+1 } buf[off+i]=0 as u8; return i+1 }
called by 1: d11_emit
20func d11_assemble(src: *u8, n: i64, out: *u8, out_cap: i64, names: *i64, offs: *i64, cnt: i64) -> i64
50func d11_thunk(buf: *u8, tco: i64, moff: i64) -> i64
called by 1: d11_emit calls 2: _w8_w32
65func d11_dev_slot(s: i64) -> i64
called by 1: d11_emit
74func d11_ctx_slot(s: i64) -> i64
called by 1: d11_emit
82func d11_emit(buf: *u8, code: *u8, code_len: i64, offs: *i64) -> i64
157func main() -> i64