diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-06-01 13:56:14 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-06-01 13:56:14 +0200 |
| commit | 3d4d678bdc89b29005861e92ea18da8ded6f0e52 (patch) | |
| tree | f30e1f6c7a3947acda365d1513deeda0100380c0 /src | |
| parent | b78d92d2884139bd47e067c81be1652cda305f07 (diff) | |
| download | box64-3d4d678bdc89b29005861e92ea18da8ded6f0e52.tar.gz box64-3d4d678bdc89b29005861e92ea18da8ded6f0e52.zip | |
Some small wrapped libGL improvements
Diffstat (limited to 'src')
| -rwxr-xr-x | src/emu/x64int3.c | 3 | ||||
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 1 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 3 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 1 | ||||
| -rwxr-xr-x | src/wrapped/wrappedlibgl_private.h | 4 |
5 files changed, 12 insertions, 0 deletions
diff --git a/src/emu/x64int3.c b/src/emu/x64int3.c index a88b45ae..a6f2c3d1 100755 --- a/src/emu/x64int3.c +++ b/src/emu/x64int3.c @@ -150,6 +150,9 @@ void x64Int3(x64emu_t* emu) } else if(!strcmp(s, "glXGetProcAddress") || !strcmp(s, "SDL_GL_GetProcAddress") || !strcmp(s, "glXGetProcAddressARB")) { tmp = (char*)(R_RDI); snprintf(buff, 255, "%04d|%p: Calling %s(\"%s\")", tid, *(void**)(R_RSP), s, (tmp)?tmp:"(nil)"); + } else if(!strcmp(s, "glLabelObjectEXT")) { + tmp = (char*)(R_RCX); + snprintf(buff, 255, "%04d|%p: Calling %s(0x%x, %d, %d, \"%s\")", tid, *(void**)(R_RSP), s, R_EDI, R_ESI, R_ECX, (tmp)?tmp:"(nil)"); } else if(!strcmp(s, "glGetStringi")) { snprintf(buff, 255, "%04d|%p: Calling %s(0x%x, %d)", tid, *(void**)(R_RSP), s, R_EDI, R_ESI); post = 2; diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 389915d8..96dfcfd4 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -577,6 +577,7 @@ #() pFuiii #() pFulli #() pFdddd +#() pFlfff #() pFpiii #() pFpiip #() pFpiuu diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index 7c4a624f..f0e4c754 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -611,6 +611,7 @@ typedef void* (*pFippL_t)(int64_t, void*, void*, uintptr_t); typedef void* (*pFuiii_t)(uint64_t, int64_t, int64_t, int64_t); typedef void* (*pFulli_t)(uint64_t, intptr_t, intptr_t, int64_t); typedef void* (*pFdddd_t)(double, double, double, double); +typedef void* (*pFlfff_t)(intptr_t, float, float, float); typedef void* (*pFpiii_t)(void*, int64_t, int64_t, int64_t); typedef void* (*pFpiip_t)(void*, int64_t, int64_t, void*); typedef void* (*pFpiuu_t)(void*, int64_t, uint64_t, uint64_t); @@ -1848,6 +1849,7 @@ void pFippL(x64emu_t *emu, uintptr_t fcn) { pFippL_t fn = (pFippL_t)fcn; R_RAX=( void pFuiii(x64emu_t *emu, uintptr_t fcn) { pFuiii_t fn = (pFuiii_t)fcn; R_RAX=(uintptr_t)fn((uint64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX); } void pFulli(x64emu_t *emu, uintptr_t fcn) { pFulli_t fn = (pFulli_t)fcn; R_RAX=(uintptr_t)fn((uint64_t)R_RDI, (intptr_t)R_RSI, (intptr_t)R_RDX, (int64_t)R_RCX); } void pFdddd(x64emu_t *emu, uintptr_t fcn) { pFdddd_t fn = (pFdddd_t)fcn; R_RAX=(uintptr_t)fn(emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], emu->xmm[3].d[0]); } +void pFlfff(x64emu_t *emu, uintptr_t fcn) { pFlfff_t fn = (pFlfff_t)fcn; R_RAX=(uintptr_t)fn((intptr_t)R_RDI, emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0]); } void pFpiii(x64emu_t *emu, uintptr_t fcn) { pFpiii_t fn = (pFpiii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX); } void pFpiip(x64emu_t *emu, uintptr_t fcn) { pFpiip_t fn = (pFpiip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX); } void pFpiuu(x64emu_t *emu, uintptr_t fcn) { pFpiuu_t fn = (pFpiuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int64_t)R_RSI, (uint64_t)R_RDX, (uint64_t)R_RCX); } @@ -3007,6 +3009,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &pFuiii) return 1; if (fun == &pFulli) return 1; if (fun == &pFdddd) return 1; + if (fun == &pFlfff) return 1; if (fun == &pFpiii) return 1; if (fun == &pFpiip) return 1; if (fun == &pFpiuu) return 1; diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index 2b3ccaa6..e3bb9c06 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -607,6 +607,7 @@ void pFippL(x64emu_t *emu, uintptr_t fnc); void pFuiii(x64emu_t *emu, uintptr_t fnc); void pFulli(x64emu_t *emu, uintptr_t fnc); void pFdddd(x64emu_t *emu, uintptr_t fnc); +void pFlfff(x64emu_t *emu, uintptr_t fnc); void pFpiii(x64emu_t *emu, uintptr_t fnc); void pFpiip(x64emu_t *emu, uintptr_t fnc); void pFpiuu(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedlibgl_private.h b/src/wrapped/wrappedlibgl_private.h index b499e70f..cbf2c412 100755 --- a/src/wrapped/wrappedlibgl_private.h +++ b/src/wrapped/wrappedlibgl_private.h @@ -3019,6 +3019,10 @@ GO(glXGetSwapIntervalMESA, iFv) //GLX_SGI_swap_control GO(glXSwapIntervalSGI,iFi) +//GLX_NV_vertex_array_range +GO(glXAllocateMemoryNV, pFlfff) +GO(glXFreeMemoryNV, vFp) + //GLX_ARB_???? GO(glSpecializeShaderARB, vFippp) |