diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2025-03-20 10:44:03 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2025-03-20 10:44:03 +0100 |
| commit | affeef2380beb467cf2daecb166bb16d8612c365 (patch) | |
| tree | d0e9fd73fe0d88e346238aabc5ad5ab17fb576b0 /src | |
| parent | a6c1e4126ed3c16c52ee5b2d2c48224beaeeaaf5 (diff) | |
| download | box64-affeef2380beb467cf2daecb166bb16d8612c365.tar.gz box64-affeef2380beb467cf2daecb166bb16d8612c365.zip | |
[WRAPPER] Added a couple of GL extensions
Diffstat (limited to 'src')
| -rw-r--r-- | src/emu/x64printer.c | 4 | ||||
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 2 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 6 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 2 | ||||
| -rw-r--r-- | src/wrapped/wrappedlibgl_private.h | 7 |
5 files changed, 21 insertions, 0 deletions
diff --git a/src/emu/x64printer.c b/src/emu/x64printer.c index b815db74..e2cead84 100644 --- a/src/emu/x64printer.c +++ b/src/emu/x64printer.c @@ -1115,6 +1115,8 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIu32 ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX); } else if (w == iFppU) { snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIu64 ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX); + } else if (w == iFppf) { + snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIf ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, emu->xmm[0].f[0]); } else if (w == iFppd) { snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIf ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, emu->xmm[0].d[0]); } else if (w == iFppl) { @@ -5409,6 +5411,8 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ", %" PRIi32 ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIu32 ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(uint32_t*)(R_RSP + 16)); } else if (w == vFpppuiiii) { snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ", %" PRIu32 ", %" PRIi32 ", %" PRIi32 ", %" PRIi32 ", %" PRIi32 ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16)); + } else if (w == vFpppuulll) { + snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ", %" PRIu32 ", %" PRIu32 ", %" PRIi64 ", %" PRIi64 ", %" PRIi64 ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (intptr_t)R_R9, *(intptr_t*)(R_RSP + 8), *(intptr_t*)(R_RSP + 16)); } else if (w == vFpppLpppp) { snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ", %" PRIu64 ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); } else if (w == vFpppppuuu) { diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 5df8667d..091687ac 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -599,6 +599,7 @@ #() iFppW #() iFppu #() iFppU +#() iFppf #() iFppd #() iFppl #() iFppL @@ -2874,6 +2875,7 @@ #() vFpppiipui #() vFpppipppu #() vFpppuiiii +#() vFpppuulll #() vFpppLpppp #() vFpppppuuu #() vFppppppui diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index 4df66630..fc2fe51c 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -634,6 +634,7 @@ typedef int32_t (*iFppC_t)(void*, void*, uint8_t); typedef int32_t (*iFppW_t)(void*, void*, uint16_t); typedef int32_t (*iFppu_t)(void*, void*, uint32_t); typedef int32_t (*iFppU_t)(void*, void*, uint64_t); +typedef int32_t (*iFppf_t)(void*, void*, float); typedef int32_t (*iFppd_t)(void*, void*, double); typedef int32_t (*iFppl_t)(void*, void*, intptr_t); typedef int32_t (*iFppL_t)(void*, void*, uintptr_t); @@ -2902,6 +2903,7 @@ typedef void (*vFppLpLpLp_t)(void*, void*, uintptr_t, void*, uintptr_t, void*, u typedef void (*vFpppiipui_t)(void*, void*, void*, int32_t, int32_t, void*, uint32_t, int32_t); typedef void (*vFpppipppu_t)(void*, void*, void*, int32_t, void*, void*, void*, uint32_t); typedef void (*vFpppuiiii_t)(void*, void*, void*, uint32_t, int32_t, int32_t, int32_t, int32_t); +typedef void (*vFpppuulll_t)(void*, void*, void*, uint32_t, uint32_t, intptr_t, intptr_t, intptr_t); typedef void (*vFpppLpppp_t)(void*, void*, void*, uintptr_t, void*, void*, void*, void*); typedef void (*vFpppppuuu_t)(void*, void*, void*, void*, void*, uint32_t, uint32_t, uint32_t); typedef void (*vFppppppui_t)(void*, void*, void*, void*, void*, void*, uint32_t, int32_t); @@ -4090,6 +4092,7 @@ void iFppC(x64emu_t *emu, uintptr_t fcn) { iFppC_t fn = (iFppC_t)fcn; R_RAX=(uin void iFppW(x64emu_t *emu, uintptr_t fcn) { iFppW_t fn = (iFppW_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (uint16_t)R_RDX); } void iFppu(x64emu_t *emu, uintptr_t fcn) { iFppu_t fn = (iFppu_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX); } void iFppU(x64emu_t *emu, uintptr_t fcn) { iFppU_t fn = (iFppU_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX); } +void iFppf(x64emu_t *emu, uintptr_t fcn) { iFppf_t fn = (iFppf_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, emu->xmm[0].f[0]); } void iFppd(x64emu_t *emu, uintptr_t fcn) { iFppd_t fn = (iFppd_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, emu->xmm[0].d[0]); } void iFppl(x64emu_t *emu, uintptr_t fcn) { iFppl_t fn = (iFppl_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (intptr_t)R_RDX); } void iFppL(x64emu_t *emu, uintptr_t fcn) { iFppL_t fn = (iFppL_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX); } @@ -6358,6 +6361,7 @@ void vFppLpLpLp(x64emu_t *emu, uintptr_t fcn) { vFppLpLpLp_t fn = (vFppLpLpLp_t) void vFpppiipui(x64emu_t *emu, uintptr_t fcn) { vFpppiipui_t fn = (vFpppiipui_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9, *(uint32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16)); } void vFpppipppu(x64emu_t *emu, uintptr_t fcn) { vFpppipppu_t fn = (vFpppipppu_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(uint32_t*)(R_RSP + 16)); } void vFpppuiiii(x64emu_t *emu, uintptr_t fcn) { vFpppuiiii_t fn = (vFpppuiiii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16)); } +void vFpppuulll(x64emu_t *emu, uintptr_t fcn) { vFpppuulll_t fn = (vFpppuulll_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (intptr_t)R_R9, *(intptr_t*)(R_RSP + 8), *(intptr_t*)(R_RSP + 16)); } void vFpppLpppp(x64emu_t *emu, uintptr_t fcn) { vFpppLpppp_t fn = (vFpppLpppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); } void vFpppppuuu(x64emu_t *emu, uintptr_t fcn) { vFpppppuuu_t fn = (vFpppppuuu_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16)); } void vFppppppui(x64emu_t *emu, uintptr_t fcn) { vFppppppui_t fn = (vFppppppui_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(uint32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16)); } @@ -7467,6 +7471,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &iFppW) return 1; if (fun == &iFppu) return 1; if (fun == &iFppU) return 1; + if (fun == &iFppf) return 2; if (fun == &iFppd) return 2; if (fun == &iFppl) return 1; if (fun == &iFppL) return 1; @@ -9485,6 +9490,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &iFppW) return 1; if (fun == &iFppu) return 65; if (fun == &iFppU) return 1; + if (fun == &iFppf) return 2; if (fun == &iFppd) return 2; if (fun == &iFppl) return 1; if (fun == &iFppL) return 1; diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index cc730b09..4b769ebd 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -636,6 +636,7 @@ void iFppC(x64emu_t *emu, uintptr_t fnc); void iFppW(x64emu_t *emu, uintptr_t fnc); void iFppu(x64emu_t *emu, uintptr_t fnc); void iFppU(x64emu_t *emu, uintptr_t fnc); +void iFppf(x64emu_t *emu, uintptr_t fnc); void iFppd(x64emu_t *emu, uintptr_t fnc); void iFppl(x64emu_t *emu, uintptr_t fnc); void iFppL(x64emu_t *emu, uintptr_t fnc); @@ -2911,6 +2912,7 @@ void vFppLpLpLp(x64emu_t *emu, uintptr_t fnc); void vFpppiipui(x64emu_t *emu, uintptr_t fnc); void vFpppipppu(x64emu_t *emu, uintptr_t fnc); void vFpppuiiii(x64emu_t *emu, uintptr_t fnc); +void vFpppuulll(x64emu_t *emu, uintptr_t fnc); void vFpppLpppp(x64emu_t *emu, uintptr_t fnc); void vFpppppuuu(x64emu_t *emu, uintptr_t fnc); void vFppppppui(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedlibgl_private.h b/src/wrapped/wrappedlibgl_private.h index da4ca22d..09c08d74 100644 --- a/src/wrapped/wrappedlibgl_private.h +++ b/src/wrapped/wrappedlibgl_private.h @@ -4073,3 +4073,10 @@ GO(glGetInteger64vEXT, vFup) GO(glGetBufferPointervOES, vFuup) GO(glMapBufferOES, pFuu) GO(glUnmapBufferOES, iFu) + +// GLX_NV_copy_buffer +GO(glXCopyBufferSubDataNV, vFpppuulll) +GO(glXNamedCopyBufferSubDataNV, vFpppuulll) + +// GLX_NV_delay_before_swap +GO(glXDelayBeforeSwapNV, iFppf) \ No newline at end of file |