From 3abbe3467bf42c1f4a27fbb3d514ebf8e366816a Mon Sep 17 00:00:00 2001 From: Yang Liu Date: Wed, 1 Jul 2026 15:20:21 +0800 Subject: [PATCH] [WRAPPER] Wrapped more symbols for libGL --- src/emu/x64printer.c | 8 ++ src/wrapped/generated/functions_list.txt | 4 + src/wrapped/generated/wrapper.c | 17 +++ src/wrapped/generated/wrapper.h | 4 + src/wrapped/wrappedlibegl_private.h | 1 + src/wrapped/wrappedlibgl_private.h | 171 ++++++++++++++++++++++- 6 files changed, 201 insertions(+), 4 deletions(-) diff --git a/src/emu/x64printer.c b/src/emu/x64printer.c index 365077bfd5..e96e0b876a 100644 --- a/src/emu/x64printer.c +++ b/src/emu/x64printer.c @@ -257,6 +257,8 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIi32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (int32_t)R_RSI); } else if (w == vFiI) { snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIi64 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (int64_t)R_RSI); + } else if (w == vFiC) { + snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu8 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint8_t)R_RSI); } else if (w == vFiW) { snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu16 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint16_t)R_RSI); } else if (w == vFiu) { @@ -1753,6 +1755,8 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIi32 ", %" PRIu8 ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (int32_t)R_RSI, (uint8_t)R_RDX, (void*)R_RCX); } else if (w == vFiill) { snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIi32 ", %" PRIi64 ", %" PRIi64 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (int32_t)R_RSI, (intptr_t)R_RDX, (intptr_t)R_RCX); + } else if (w == vFiipp) { + snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIi32 ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX); } else if (w == vFiIII) { snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIi64 ", %" PRIi64 ", %" PRIi64 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX); } else if (w == vFiuip) { @@ -4367,6 +4371,8 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIu32 ", %" PRIi32 ", %" PRIu32 ", %" PRIi32 ", %" PRIi32 ", %" PRIu8 ")", tid, *(void**)(R_RSP), func, (uint32_t)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (uint8_t)R_R9); } else if (w == vFuiuiil) { snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIu32 ", %" PRIi32 ", %" PRIu32 ", %" PRIi32 ", %" PRIi32 ", %" PRIi64 ")", tid, *(void**)(R_RSP), func, (uint32_t)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (intptr_t)R_R9); + } else if (w == vFuiuiip) { + snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIu32 ", %" PRIi32 ", %" PRIu32 ", %" PRIi32 ", %" PRIi32 ", %" PRIp ")", tid, *(void**)(R_RSP), func, (uint32_t)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9); } else if (w == vFuiuiuu) { snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIu32 ", %" PRIi32 ", %" PRIu32 ", %" PRIi32 ", %" PRIu32 ", %" PRIu32 ")", tid, *(void**)(R_RSP), func, (uint32_t)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9); } else if (w == vFuiuiuU) { @@ -5483,6 +5489,8 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIi32 ", %" PRIu32 ", %" PRIi32 ", %" PRIi64 ")", tid, *(void**)(R_RSP), func, (uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (int32_t)R_R9, *(intptr_t*)(R_RSP + 8)); } else if (w == vFuuuiupi) { snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIi32 ", %" PRIu32 ", %" PRIp ", %" PRIi32 ")", tid, *(void**)(R_RSP), func, (uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8)); + } else if (w == vFuuuuiii) { + snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIi32 ", %" PRIi32 ", %" PRIi32 ")", tid, *(void**)(R_RSP), func, (uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8)); } else if (w == vFuuuuuuu) { snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ")", tid, *(void**)(R_RSP), func, (uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8)); } else if (w == vFuuuulll) { diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 1196f9bbd1..c1479e4f63 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -145,6 +145,7 @@ #() vFww #() vFii #() vFiI +#() vFiC #() vFiW #() vFiu #() vFiU @@ -1008,6 +1009,7 @@ #() vFiiip #() vFiiCp #() vFiill +#() vFiipp #() vFiIII #() vFiuip #() vFiuuu @@ -2420,6 +2422,7 @@ #() vFuiuiii #() vFuiuiiC #() vFuiuiil +#() vFuiuiip #() vFuiuiuu #() vFuiuiuU #() vFuiuCip @@ -3009,6 +3012,7 @@ #() vFuuuiiCp #() vFuuuiuil #() vFuuuiupi +#() vFuuuuiii #() vFuuuuuuu #() vFuuuulll #() vFuuuffff diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index d241da9b83..e3475e6ba2 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -190,6 +190,7 @@ typedef void (*vFcc_t)(int8_t, int8_t); typedef void (*vFww_t)(int16_t, int16_t); typedef void (*vFii_t)(int32_t, int32_t); typedef void (*vFiI_t)(int32_t, int64_t); +typedef void (*vFiC_t)(int32_t, uint8_t); typedef void (*vFiW_t)(int32_t, uint16_t); typedef void (*vFiu_t)(int32_t, uint32_t); typedef void (*vFiU_t)(int32_t, uint64_t); @@ -1039,6 +1040,7 @@ typedef void (*vFiiii_t)(int32_t, int32_t, int32_t, int32_t); typedef void (*vFiiip_t)(int32_t, int32_t, int32_t, void*); typedef void (*vFiiCp_t)(int32_t, int32_t, uint8_t, void*); typedef void (*vFiill_t)(int32_t, int32_t, intptr_t, intptr_t); +typedef void (*vFiipp_t)(int32_t, int32_t, void*, void*); typedef void (*vFiIII_t)(int32_t, int64_t, int64_t, int64_t); typedef void (*vFiuip_t)(int32_t, uint32_t, int32_t, void*); typedef void (*vFiuuu_t)(int32_t, uint32_t, uint32_t, uint32_t); @@ -2449,6 +2451,7 @@ typedef void (*vFuiIIII_t)(uint32_t, int32_t, int64_t, int64_t, int64_t, int64_t typedef void (*vFuiuiii_t)(uint32_t, int32_t, uint32_t, int32_t, int32_t, int32_t); typedef void (*vFuiuiiC_t)(uint32_t, int32_t, uint32_t, int32_t, int32_t, uint8_t); typedef void (*vFuiuiil_t)(uint32_t, int32_t, uint32_t, int32_t, int32_t, intptr_t); +typedef void (*vFuiuiip_t)(uint32_t, int32_t, uint32_t, int32_t, int32_t, void*); typedef void (*vFuiuiuu_t)(uint32_t, int32_t, uint32_t, int32_t, uint32_t, uint32_t); typedef void (*vFuiuiuU_t)(uint32_t, int32_t, uint32_t, int32_t, uint32_t, uint64_t); typedef void (*vFuiuCip_t)(uint32_t, int32_t, uint32_t, uint8_t, int32_t, void*); @@ -3037,6 +3040,7 @@ typedef void (*vFuuuiiii_t)(uint32_t, uint32_t, uint32_t, int32_t, int32_t, int3 typedef void (*vFuuuiiCp_t)(uint32_t, uint32_t, uint32_t, int32_t, int32_t, uint8_t, void*); typedef void (*vFuuuiuil_t)(uint32_t, uint32_t, uint32_t, int32_t, uint32_t, int32_t, intptr_t); typedef void (*vFuuuiupi_t)(uint32_t, uint32_t, uint32_t, int32_t, uint32_t, void*, int32_t); +typedef void (*vFuuuuiii_t)(uint32_t, uint32_t, uint32_t, uint32_t, int32_t, int32_t, int32_t); typedef void (*vFuuuuuuu_t)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t); typedef void (*vFuuuulll_t)(uint32_t, uint32_t, uint32_t, uint32_t, intptr_t, intptr_t, intptr_t); typedef void (*vFuuuffff_t)(uint32_t, uint32_t, uint32_t, float, float, float, float); @@ -4445,6 +4449,7 @@ void vFcc(x64emu_t *emu, uintptr_t fcn) { vFcc_t fn = (vFcc_t)fcn; fn((int8_t)R_ void vFww(x64emu_t *emu, uintptr_t fcn) { vFww_t fn = (vFww_t)fcn; fn((int16_t)R_RDI, (int16_t)R_RSI); } void vFii(x64emu_t *emu, uintptr_t fcn) { vFii_t fn = (vFii_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI); } void vFiI(x64emu_t *emu, uintptr_t fcn) { vFiI_t fn = (vFiI_t)fcn; fn((int32_t)R_RDI, (int64_t)R_RSI); } +void vFiC(x64emu_t *emu, uintptr_t fcn) { vFiC_t fn = (vFiC_t)fcn; fn((int32_t)R_RDI, (uint8_t)R_RSI); } void vFiW(x64emu_t *emu, uintptr_t fcn) { vFiW_t fn = (vFiW_t)fcn; fn((int32_t)R_RDI, (uint16_t)R_RSI); } void vFiu(x64emu_t *emu, uintptr_t fcn) { vFiu_t fn = (vFiu_t)fcn; fn((int32_t)R_RDI, (uint32_t)R_RSI); } void vFiU(x64emu_t *emu, uintptr_t fcn) { vFiU_t fn = (vFiU_t)fcn; fn((int32_t)R_RDI, (uint64_t)R_RSI); } @@ -5294,6 +5299,7 @@ void vFiiii(x64emu_t *emu, uintptr_t fcn) { vFiiii_t fn = (vFiiii_t)fcn; fn((int void vFiiip(x64emu_t *emu, uintptr_t fcn) { vFiiip_t fn = (vFiiip_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX); } void vFiiCp(x64emu_t *emu, uintptr_t fcn) { vFiiCp_t fn = (vFiiCp_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (uint8_t)R_RDX, (void*)R_RCX); } void vFiill(x64emu_t *emu, uintptr_t fcn) { vFiill_t fn = (vFiill_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (intptr_t)R_RDX, (intptr_t)R_RCX); } +void vFiipp(x64emu_t *emu, uintptr_t fcn) { vFiipp_t fn = (vFiipp_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX); } void vFiIII(x64emu_t *emu, uintptr_t fcn) { vFiIII_t fn = (vFiIII_t)fcn; fn((int32_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX); } void vFiuip(x64emu_t *emu, uintptr_t fcn) { vFiuip_t fn = (vFiuip_t)fcn; fn((int32_t)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX); } void vFiuuu(x64emu_t *emu, uintptr_t fcn) { vFiuuu_t fn = (vFiuuu_t)fcn; fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX); } @@ -6704,6 +6710,7 @@ void vFuiIIII(x64emu_t *emu, uintptr_t fcn) { vFuiIIII_t fn = (vFuiIIII_t)fcn; f void vFuiuiii(x64emu_t *emu, uintptr_t fcn) { vFuiuiii_t fn = (vFuiuiii_t)fcn; fn((uint32_t)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9); } void vFuiuiiC(x64emu_t *emu, uintptr_t fcn) { vFuiuiiC_t fn = (vFuiuiiC_t)fcn; fn((uint32_t)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (uint8_t)R_R9); } void vFuiuiil(x64emu_t *emu, uintptr_t fcn) { vFuiuiil_t fn = (vFuiuiil_t)fcn; fn((uint32_t)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (intptr_t)R_R9); } +void vFuiuiip(x64emu_t *emu, uintptr_t fcn) { vFuiuiip_t fn = (vFuiuiip_t)fcn; fn((uint32_t)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9); } void vFuiuiuu(x64emu_t *emu, uintptr_t fcn) { vFuiuiuu_t fn = (vFuiuiuu_t)fcn; fn((uint32_t)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9); } void vFuiuiuU(x64emu_t *emu, uintptr_t fcn) { vFuiuiuU_t fn = (vFuiuiuU_t)fcn; fn((uint32_t)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint64_t)R_R9); } void vFuiuCip(x64emu_t *emu, uintptr_t fcn) { vFuiuCip_t fn = (vFuiuCip_t)fcn; fn((uint32_t)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (uint8_t)R_RCX, (int32_t)R_R8, (void*)R_R9); } @@ -7292,6 +7299,7 @@ void vFuuuiiii(x64emu_t *emu, uintptr_t fcn) { vFuuuiiii_t fn = (vFuuuiiii_t)fcn void vFuuuiiCp(x64emu_t *emu, uintptr_t fcn) { vFuuuiiCp_t fn = (vFuuuiiCp_t)fcn; fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (uint8_t)R_R9, *(void**)(R_RSP + 8)); } void vFuuuiuil(x64emu_t *emu, uintptr_t fcn) { vFuuuiuil_t fn = (vFuuuiuil_t)fcn; fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (int32_t)R_R9, *(intptr_t*)(R_RSP + 8)); } void vFuuuiupi(x64emu_t *emu, uintptr_t fcn) { vFuuuiupi_t fn = (vFuuuiupi_t)fcn; fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8)); } +void vFuuuuiii(x64emu_t *emu, uintptr_t fcn) { vFuuuuiii_t fn = (vFuuuuiii_t)fcn; fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8)); } void vFuuuuuuu(x64emu_t *emu, uintptr_t fcn) { vFuuuuuuu_t fn = (vFuuuuuuu_t)fcn; fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8)); } void vFuuuulll(x64emu_t *emu, uintptr_t fcn) { vFuuuulll_t fn = (vFuuuulll_t)fcn; fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (intptr_t)R_R8, (intptr_t)R_R9, *(intptr_t*)(R_RSP + 8)); } void vFuuuffff(x64emu_t *emu, uintptr_t fcn) { vFuuuffff_t fn = (vFuuuffff_t)fcn; fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], emu->xmm[3].f[0]); } @@ -8704,6 +8712,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &vFww) return 1; if (fun == &vFii) return 1; if (fun == &vFiI) return 1; + if (fun == &vFiC) return 1; if (fun == &vFiW) return 1; if (fun == &vFiu) return 1; if (fun == &vFiU) return 1; @@ -9348,6 +9357,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &vFiiip) return 1; if (fun == &vFiiCp) return 1; if (fun == &vFiill) return 1; + if (fun == &vFiipp) return 1; if (fun == &vFiIII) return 1; if (fun == &vFiuip) return 1; if (fun == &vFiuuu) return 1; @@ -10503,6 +10513,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &vFuiuiii) return 1; if (fun == &vFuiuiiC) return 1; if (fun == &vFuiuiil) return 1; + if (fun == &vFuiuiip) return 1; if (fun == &vFuiuiuu) return 1; if (fun == &vFuiuiuU) return 1; if (fun == &vFuiuCip) return 1; @@ -11129,6 +11140,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &vFww) return 49; if (fun == &vFii) return 49; if (fun == &vFiI) return 17; + if (fun == &vFiC) return 17; if (fun == &vFiW) return 17; if (fun == &vFiu) return 49; if (fun == &vFiU) return 17; @@ -11773,6 +11785,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &vFiiip) return 113; if (fun == &vFiiCp) return 49; if (fun == &vFiill) return 49; + if (fun == &vFiipp) return 49; if (fun == &vFiIII) return 17; if (fun == &vFiuip) return 113; if (fun == &vFiuuu) return 241; @@ -12928,6 +12941,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &vFuiuiii) return 1009; if (fun == &vFuiuiiC) return 497; if (fun == &vFuiuiil) return 497; + if (fun == &vFuiuiip) return 497; if (fun == &vFuiuiuu) return 1009; if (fun == &vFuiuiuU) return 497; if (fun == &vFuiuCip) return 369; @@ -13554,6 +13568,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &vFww) return 49; if (fun == &vFii) return 49; if (fun == &vFiI) return 17; + if (fun == &vFiC) return 17; if (fun == &vFiW) return 17; if (fun == &vFiu) return 49; if (fun == &vFiU) return 17; @@ -14198,6 +14213,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &vFiiip) return 113; if (fun == &vFiiCp) return 49; if (fun == &vFiill) return 49; + if (fun == &vFiipp) return 49; if (fun == &vFiIII) return 17; if (fun == &vFiuip) return 113; if (fun == &vFiuuu) return 241; @@ -15353,6 +15369,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &vFuiuiii) return 1009; if (fun == &vFuiuiiC) return 497; if (fun == &vFuiuiil) return 497; + if (fun == &vFuiuiip) return 497; if (fun == &vFuiuiuu) return 1009; if (fun == &vFuiuiuU) return 497; if (fun == &vFuiuCip) return 369; diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index b9c0cd886b..aeb06c37e2 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -182,6 +182,7 @@ void vFcc(x64emu_t *emu, uintptr_t fnc); void vFww(x64emu_t *emu, uintptr_t fnc); void vFii(x64emu_t *emu, uintptr_t fnc); void vFiI(x64emu_t *emu, uintptr_t fnc); +void vFiC(x64emu_t *emu, uintptr_t fnc); void vFiW(x64emu_t *emu, uintptr_t fnc); void vFiu(x64emu_t *emu, uintptr_t fnc); void vFiU(x64emu_t *emu, uintptr_t fnc); @@ -1045,6 +1046,7 @@ void vFiiii(x64emu_t *emu, uintptr_t fnc); void vFiiip(x64emu_t *emu, uintptr_t fnc); void vFiiCp(x64emu_t *emu, uintptr_t fnc); void vFiill(x64emu_t *emu, uintptr_t fnc); +void vFiipp(x64emu_t *emu, uintptr_t fnc); void vFiIII(x64emu_t *emu, uintptr_t fnc); void vFiuip(x64emu_t *emu, uintptr_t fnc); void vFiuuu(x64emu_t *emu, uintptr_t fnc); @@ -2457,6 +2459,7 @@ void vFuiIIII(x64emu_t *emu, uintptr_t fnc); void vFuiuiii(x64emu_t *emu, uintptr_t fnc); void vFuiuiiC(x64emu_t *emu, uintptr_t fnc); void vFuiuiil(x64emu_t *emu, uintptr_t fnc); +void vFuiuiip(x64emu_t *emu, uintptr_t fnc); void vFuiuiuu(x64emu_t *emu, uintptr_t fnc); void vFuiuiuU(x64emu_t *emu, uintptr_t fnc); void vFuiuCip(x64emu_t *emu, uintptr_t fnc); @@ -3046,6 +3049,7 @@ void vFuuuiiii(x64emu_t *emu, uintptr_t fnc); void vFuuuiiCp(x64emu_t *emu, uintptr_t fnc); void vFuuuiuil(x64emu_t *emu, uintptr_t fnc); void vFuuuiupi(x64emu_t *emu, uintptr_t fnc); +void vFuuuuiii(x64emu_t *emu, uintptr_t fnc); void vFuuuuuuu(x64emu_t *emu, uintptr_t fnc); void vFuuuulll(x64emu_t *emu, uintptr_t fnc); void vFuuuffff(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedlibegl_private.h b/src/wrapped/wrappedlibegl_private.h index a1c11935c4..6711a7ca60 100644 --- a/src/wrapped/wrappedlibegl_private.h +++ b/src/wrapped/wrappedlibegl_private.h @@ -26,6 +26,7 @@ GO(eglGetCurrentContext, pFv) GO(eglGetCurrentDisplay, pFv) GO(eglGetCurrentSurface, pFi) GO(eglGetDisplay, pFp) +GO(eglGetDisplayDriverName, pFp) GO(eglGetError, iFv) GO(eglGetPlatformDisplay, pFupp) GOM(eglGetProcAddress, pFEp) diff --git a/src/wrapped/wrappedlibgl_private.h b/src/wrapped/wrappedlibgl_private.h index a217a1227a..c3338731c0 100644 --- a/src/wrapped/wrappedlibgl_private.h +++ b/src/wrapped/wrappedlibgl_private.h @@ -3980,6 +3980,7 @@ GO(eglGetCurrentContext, pFv) GO(eglGetCurrentDisplay, pFv) GO(eglGetCurrentSurface, pFi) GO(eglGetDisplay, pFp) +GO(eglGetDisplayDriverName, pFp) GO(eglGetError, iFv) GO(eglGetPlatformDisplay, pFupp) //GOM(eglGetProcAddress, pFEp) @@ -4083,6 +4084,99 @@ GO(glGetBufferPointervOES, vFuup) GO(glMapBufferOES, pFuu) GO(glUnmapBufferOES, CFu) +// GL_EXT_primitive_bounding_box +GO(glPrimitiveBoundingBoxEXT, vFffffffff) + +// GL_EXT_robustness +GO(glGetGraphicsResetStatusEXT, uFv) +GO(glGetnUniformfvEXT, vFuiip) +GO(glGetnUniformivEXT, vFuiip) +GO(glReadnPixelsEXT, vFiiiiuuip) + +// GL_EXT_tessellation_shader +GO(glPatchParameteriEXT, vFui) + +// GL_EXT_texture_buffer +GO(glTexBufferRangeEXT, vFuuull) + +// GL_EXT_texture_integer +GO(glGetSamplerParameterIivEXT, vFuup) +GO(glGetSamplerParameterIuivEXT, vFuup) +GO(glSamplerParameterIivEXT, vFuup) +GO(glSamplerParameterIuivEXT, vFuup) + +// GL_OES_copy_image +GO(glCopyImageSubDataOES, vFuuiiiiuuiiiiiii) + +// GL_OES_draw_buffers_indexed +GO(glBlendEquationSeparateiOES, vFuuu) +GO(glBlendEquationiOES, vFuu) +GO(glBlendFuncSeparateiOES, vFuuuuu) +GO(glBlendFunciOES, vFuuu) +GO(glColorMaskiOES, vFuCCCC) +GO(glDisableiOES, vFuu) +GO(glEnableiOES, vFuu) +GO(glIsEnablediOES, CFuu) + +// GL_OES_geometry_shader +GO(glFramebufferTextureOES, vFuuui) +GO(glFramebufferTexture3DOES, vFuuuuii) + +// GL_OES_get_program_binary +GO(glGetProgramBinaryOES, vFuippp) +GO(glProgramBinaryOES, vFuupi) + +// GL_OES_primitive_bounding_box +GO(glPrimitiveBoundingBoxOES, vFffffffff) + +// GL_OES_sample_shading +GO(glMinSampleShadingOES, vFf) + +// GL_OES_tessellation_shader +GO(glPatchParameteriOES, vFui) + +// GL_OES_texture_3D +GO(glCompressedTexImage3DOES, vFuiuiiiiip) +GO(glCompressedTexSubImage3DOES, vFuiiiiiiiuip) +GO(glCopyTexSubImage3DOES, vFuiiiiiiii) +GO(glTexImage3DOES, vFuiuiiiiuup) +GO(glTexSubImage3DOES, vFuiiiiiiiuup) + +// GL_OES_texture_buffer +GO(glTexBufferOES, vFuuu) +GO(glTexBufferRangeOES, vFuuull) + +// GL_OES_texture_integer +GO(glGetSamplerParameterIivOES, vFuup) +GO(glGetSamplerParameterIuivOES, vFuup) +GO(glGetTexParameterIivOES, vFuup) +GO(glGetTexParameterIuivOES, vFuup) +GO(glSamplerParameterIivOES, vFuup) +GO(glSamplerParameterIuivOES, vFuup) +GO(glTexParameterIivOES, vFuup) +GO(glTexParameterIuivOES, vFuup) + +// GL_OES_texture_storage_multisample_2d_array +GO(glTexStorage3DMultisampleOES, vFuiuiiiC) + +// GL_OES_texture_view +GO(glTextureViewOES, vFuuuuuuuu) + +// GL_OES_vertex_array_object +GO(glBindVertexArrayOES, vFu) +GO(glDeleteVertexArraysOES, vFip) +GO(glGenVertexArraysOES, vFip) +GO(glIsVertexArrayOES, CFu) + +// GL_OES_viewport_array +GO(glGetFloati_vOES, vFuup) +GO(glScissorArrayvOES, vFuip) +GO(glScissorIndexedOES, vFuiiii) +GO(glScissorIndexedvOES, vFup) +GO(glViewportArrayvOES, vFuip) +GO(glViewportIndexedfOES, vFuffff) +GO(glViewportIndexedfvOES, vFup) + // GLX_NV_copy_buffer GO(glXCopyBufferSubDataNV, vFpppuulll) GO(glXNamedCopyBufferSubDataNV, vFpppuulll) @@ -4096,7 +4190,76 @@ GO(glDepthRangeIndexeddNV, vFudd) // GLX_EXT_import_context GO(glXGetCurrentDisplayEXT, pFv) -GO(glXQueryContextInfoEXT, iFpLip) -GO(glXGetContextIDEXT, LFL) -GO(glXImportContextEXT, LFpL) -GO(glXFreeContextEXT, vFpL) +GO(glXQueryContextInfoEXT, iFppip) +GO(glXGetContextIDEXT, LFp) +GO(glXImportContextEXT, pFpL) +GO(glXFreeContextEXT, vFpp) + +GO(glBindFramebufferOES, vFuu) +GO(glBindRenderbufferOES, vFuu) +GO(glBlendEquationOES, vFu) +GO(glBlendEquationSeparateOES, vFuu) +GO(glBlendFuncSeparateOES, vFuuuu) +GO(glCheckFramebufferStatusOES, uFu) +GO(glClipPlanefIMG, vFup) +GO(glClipPlanexIMG, vFup) +GO(glCoverageMaskNV, vFC) +GO(glCoverageOperationNV, vFu) +GO(glCurrentPaletteMatrixOES, vFu) +GO(glDeleteFramebuffersOES, vFip) +GO(glDeleteRenderbuffersOES, vFip) +GO(glDepthRangeArrayfvOES, vFuip) +GO(glDepthRangeIndexedfOES, vFuff) +GO(glDrawTexfOES, vFffff) +GO(glDrawTexfvOES, vFp) +GO(glDrawTexiOES, vFiiii) +GO(glDrawTexivOES, vFp) +GO(glDrawTexsOES, vFwwww) +GO(glDrawTexsvOES, vFp) +GO(glDrawTexxOES, vFiiii) +GO(glDrawTexxvOES, vFp) +GO(glDrawTransformFeedbackEXT, vFuu) +GO(glDrawTransformFeedbackInstancedEXT, vFuui) +GO(glExtrapolateTex2DQCOM, vFuuuf) +GO(glFramebufferRenderbufferOES, vFuuuu) +GO(glFramebufferShadingRateEXT, vFuuuiiii) +GO(glFramebufferTexture2DDownsampleIMG, vFuuuuiii) +GO(glFramebufferTexture2DOES, vFuuuui) +GO(glFramebufferTextureLayerDownsampleIMG, vFuuuiiii) +GO(glGenFramebuffersOES, vFip) +GO(glGenRenderbuffersOES, vFip) +GO(glGenerateMipmapOES, vFu) +GO(glGetFragmentShadingRatesEXT, vFiipp) +GO(glGetFramebufferAttachmentParameterivOES, vFuuup) +GO(glGetLightxv, vFuup) +GO(glGetMaterialxv, vFuup) +GO(glGetRenderbufferParameterivOES, vFuup) +GO(glGetTexGenfvOES, vFuup) +GO(glGetTexGenivOES, vFuup) +GO(glGetTextureHandleIMG, UFu) +GO(glGetTextureSamplerHandleIMG, UFuu) +GO(glIsFramebufferOES, CFu) +GO(glRenderbufferStorageOES, vFuuii) +GO(glIsRenderbufferOES, CFu) +GO(glLoadPaletteFromModelViewMatrixOES, vFv) +GO(glMatrixIndexPointerOES, vFiuip) +GO(glPointParameterx, vFui) +GO(glProgramUniformHandleui64IMG, vFuiU) +GO(glProgramUniformHandleui64vIMG, vFuiip) +GO(glReadBufferNV, vFu) +GO(glSampleCoveragex, vFiC) +GO(glShadingRateCombinerOpsEXT, vFuu) +GO(glShadingRateEXT, vFu) +GO(glShadingRateQCOM, vFu) +GO(glTexEstimateMotionQCOM, vFuuu) +GO(glTexEstimateMotionRegionsQCOM, vFuuuu) +GO(glTexGenfOES, vFuuf) +GO(glTexGenfvOES, vFuup) +GO(glTexGeniOES, vFuui) +GO(glTexGenivOES, vFuup) +GO(glTexStorageAttribs2DEXT, vFuiuiip) +GO(glTexStorageAttribs3DEXT, vFuiuiiip) +GO(glTextureFoveationParametersQCOM, vFuuufffff) +GO(glUniformHandleui64IMG, vFiU) +GO(glUniformHandleui64vIMG, vFiip) +GO(glWeightPointerOES, vFiuip)