diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-09-10 21:46:03 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-09-10 21:46:03 +0200 |
| commit | cda4af34037a3cb982d8e69bc03c94d32fe6dd6c (patch) | |
| tree | 83810233b199c1fcc2043ef7e4d64122de4d0db4 /src/wrapped/wrappedlibgl.c | |
| parent | 93ea5bacb7f104b730980a957688c210175b41dd (diff) | |
| download | box64-cda4af34037a3cb982d8e69bc03c94d32fe6dd6c.tar.gz box64-cda4af34037a3cb982d8e69bc03c94d32fe6dd6c.zip | |
Added some more GL/GLES extensions
Diffstat (limited to 'src/wrapped/wrappedlibgl.c')
| -rwxr-xr-x | src/wrapped/wrappedlibgl.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/wrapped/wrappedlibgl.c b/src/wrapped/wrappedlibgl.c index db4453c2..006774aa 100755 --- a/src/wrapped/wrappedlibgl.c +++ b/src/wrapped/wrappedlibgl.c @@ -88,6 +88,7 @@ EXPORT void* my_glXGetProcAddressARB(x64emu_t* emu, void* name) __attribute__((a typedef int (*iFi_t)(int); typedef void (*vFpp_t)(void*, void*); +typedef void*(*pFp_t)(void*); typedef void (*debugProc_t)(int32_t, int32_t, uint32_t, int32_t, int32_t, void*, void*); #define SUPER() \ @@ -184,6 +185,18 @@ EXPORT void my_glProgramCallbackMESA(x64emu_t* emu, void* f, void* data) ProgramCallbackMESA(find_program_callback_Fct(f), data); } +void* my_GetVkProcAddr(x64emu_t* emu, void* name, void*(*getaddr)(void*)); // defined in wrappedvulkan.c +EXPORT void* my_glGetVkProcAddrNV(x64emu_t* emu, void* name) +{ + static pFp_t GetVkProcAddrNV = NULL; + static int init = 1; + if(init) { + GetVkProcAddrNV = my_context->glxprocaddress("glGetVkProcAddrNV"); + init = 0; + } + return my_GetVkProcAddr(emu, name, GetVkProcAddrNV); +} + #define PRE_INIT if(libGL) {lib->priv.w.lib = dlopen(libGL, RTLD_LAZY | RTLD_GLOBAL); lib->path = strdup(libGL);} else #define CUSTOM_INIT \ lib->priv.w.priv = dlsym(lib->priv.w.lib, "glXGetProcAddress"); \ |